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在大型项目中的使用技巧
Contents
Show EOL distros:
System Dependencies
ROS packages有时会需要操作系统提供一些外部函数库,这些函数库就是所谓的“系统依赖项”。在一些情况下,这些依赖项并没有被系统默认安装,因此,ROS提供了一个工具rosdep来下载并安装所需系统依赖项。
ROS packages必须在配置文件中声明他们需要哪些系统依赖项。下面我们来看看turtlesim package的配置文件:
$ 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 依赖这些函数库和packages.
$ 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 packages所需要的系统依赖项的小工具 使用方法:
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依赖项安装信息:
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 运行上述bash脚本,并在完成后退出。