(!) 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>

お分かりいただけるようにturtlesimlibqt4-devqt4-qmakeを必要とします.

$ cat manifest.xml
  • <package>
    
    ...
    ...
        <rosdep name="libqt4-dev"/>
        <rosdep name="qt4-qmake"/>
    
    </package>

お分かりいただけるようにturtlesimlibqt4-devqt4-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 は、上記のバッシュスクリプトを実行し、完了すると終了します。

Wiki: ja/ROS/Tutorials/rosdep (last edited 2019-07-09 06:59:45 by RyuichiUeda)