web-dev-qa-db-ja.com

Python 3のみを使用し、システムライブラリをめちゃくちゃにしないROSメロディックインストール?

手順と問題の説明:

私はそこでインストールガイドに従っています:
http://wiki.ros.org/melodic/Installation/Ubuntu

だが:

  1. $ Sudo apt-get install ros-melodic-desktop-fullが機能しません:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     ros-melodic-desktop-full : Depends: ros-melodic-perception but it is not going to be installed    
    E: Unable to correct problems, you have held broken packages.    
    

    ->質問1。

  2. $ Sudo apt-get install ros-melodic-desktop-fullは機能しているようですが、パッケージ全体(602 MB)をインストールする必要があります。これらのパッケージを詳細に見ると、次のことがわかります。

    • 190以上のros-something-packages:OK

    • いくつかの新しいライブラリ:OK

    • 40以上python-<packages>(間違いなくPython 2パッケージ):->質問2.1

    • 80以上libboost-<something-system-libraries>:->質問2.2

関連する質問:

質問1:

なぜなのかご存知ですか?

質問2.1:

これらのパッケージのPython 3バージョンの使用を強制する方法は?

質問2.2:

他の目的のために、ソースからboostをビルドします( Building Boost from sources on Linux )。
これらすべての依存関係を使用してrosをインストールすると、rosに付属する boost システムライブラリ(すべてブーストバージョン) 1.65)は、ブーストライブラリ(バージョン1.68にあります)のパーソナライズされたインストールに失敗します。特に、他のソフトウェアをコンパイルしたい場合(私は1つだけにすることを好みます)これらのlibのバージョン、つまり最新の1.68)。
これらのすでにインストールされているライブラリを使用するようにrosに指示する方法はありますか(基本的に/usr/local/)?

一般的な情報:

私はUbuntu 18.04を使用しています:4.15.0-43-generic x86_64 GNU/Linux Python 3バージョンは:3.6.7

5
s.k

ROSシステムが機能するためには、特定の最小バージョンでの依存関係が必要です。

すべてのツールはpython 2.7+で作成されているため、インストールではpython 3を使用できませんが、python versionパッケージを実行またはコンパイルするときに使用するROS_PYTHON_VERSIONを3に変更します。

この回答 を使用して、コンパイル済みのソースを.debファイルに変換し、それをインストールして、aptがboostライブラリに干渉しないようにできると思います

1
Mohammad Ali