Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
システムの依存関係を扱う
Description: ここでは、システム依存をインストールするのにどのようにrosdepを使うかについて説明します。Tutorial Level: INTERMEDIATE
Next Tutorial: Roslaunch tips for large projects
Show EOL distros:
システム依存
ROSのパッケージは時折、OSによって提供されるべき外部のライブラリやツールを必要とするときがあります。これらの要求されるライブラリやツールは、通常、システム依存と呼びます。いくらかのケースでは、これらのシステム依存はデフォルトではインストールされてません。ROSは、システム依存をダウンロードしインストールする単純なrosdepというツールというものを用意しています。
ROSのパッケージは、これらのシステム依存をパッケージのマニフェストに明言する必要があります。turtlesimのマニフェストを見てみましょう。:
$ roscd turtlesim
次に,
$ cat package.xml
<package> ... ... <build_depend>message_generation</build_depend> <build_depend>libqt4-dev</build_depend> <build_depend>qt4-qmake</build_depend> <build_depend>rosconsole</build_depend> <build_depend>roscpp</build_depend> <build_depend>roscpp_serialization</build_depend> <build_depend>roslib</build_depend> <build_depend>rostime</build_depend> <build_depend>std_msgs</build_depend> <build_depend>std_srvs</build_depend> </package>
上のようにturtlesimそれらのライブラリを必要としています.
$ cat manifest.xml
<package> ... ... <rosdep name="libqt4-dev"/> <rosdep name="qt4-qmake"/> </package>
お分かりいただけるようにturtlesimはlibqt4-dev とqt4-qmakeを必要とします.
$ cat manifest.xml
<package> ... ... <rosdep name="libqt4-dev"/> <rosdep name="qt4-qmake"/> </package>
お分かりいただけるようにturtlesimはlibqt4-dev とqt4-qmakeを必要とします.
rosdep
rosdepは、ROSのパッケージによって要求されたシステム依存のインストールを行うために使うツールです。
使い方:
rosdep install [package]
turtlesimのためのシステム依存をダウンロードして、インストールします。:
$ rosdep install turtlesim
チュートリアルを順番に進めているならrosdepを使うのは今回が初めてでしょう。そのため次のようなエラーメッセージが出ると思います。:
ERROR: your rosdep installation has not been initialized yet. Please run: sudo rosdep init rosdep update
これら二つのコマンドを実行して、turtlesimの依存関係にあるものを再度インストールを行うだけです。
バイナリを使用してインストールをするとき、以下のようなものを見るでしょう。:
All required rosdeps installed successfully
そうでなければ、turtlesimの依存関係をインストールする出力を見るでしょう。
#!/usr/bin/bash set -o errexit set -o verbose if [ ! -f /opt/ros/lib/libboost_date_time-gcc42-mt*-1_37.a ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/boost_1_37_0.tar.gz tar xzf boost_1_37_0.tar.gz cd boost_1_37_0 ./configure --prefix=/opt/ros make sudo make install fi if [ ! -f /opt/ros/lib/liblog4cxx.so.10 ] ; then mkdir -p ~/ros/ros-deps cd ~/ros/ros-deps wget --tries=10 http://pr.willowgarage.com/downloads/apache-log4cxx-0.10.0-wg_patched.tar.gz tar xzf apache-log4cxx-0.10.0-wg_patched.tar.gz cd apache-log4cxx-0.10.0 ./configure --prefix=/opt/ros make sudo make install fi
rosdep は、上記のバッシュスクリプトを実行し、完了すると終了します。