管理系统依赖项
课程描述: 本教程将展示如何使用rosdep安装系统依赖项。
课程难度: 中级
下节预告: roslaunch在大型项目中的使用技巧
本教程将展示如何使用rosdep安装系统依赖项。链接如下:中文 英文
友情提醒:中文和英文官方教程有些差别,英文教程更为全面,推荐阅读,并进行实验。
系统依赖
ROS功能包有时会需要操作系统提供一些外部函数库,这些函数库就是所谓的“系统依赖项”。在一些情况下,这些依赖项并没有被系统默认安装,因此,ROS提供了一个工具rosdep来下载并安装所需系统依赖项。
ROS功能包必须在配置文件中声明他们需要哪些系统依赖项。下面我们来看看turtlesim功能包的配置文件:
$ roscd turtlesim
$ cat package.xml
然后,使用rosdep。
rosdep
rosdep是一个能够下载并安装ROS功能包所需要的系统依赖项的小工具。
使用方法:
rosdep install [package]
如果功能包是从GitHub上下载的,参考文末说明。
为turtlesim下载并安装系统依赖项:
$ rosdep install turtlesim
如果是按照教程的顺序学习,那么这很可能是你第一次使用rosdep工具,因此,当执行这条指令,你会看到如下的报错消息:
ERROR: your rosdep installation has not been initialized yet. Please run:
sudo rosdep init
rosdep update
按照提示执行上边两条指令,并再次安装turtlesim的系统依赖项。
可用rosdep resolve turtlesim
查看rosdep是否正常更新。
如果你安装的是二进制文件,那么会看到如下信息:
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脚本,并在完成后退出。
补充说明
如果在编译源码时,使用rosdep工具,参考如下命令:
rosdep install --from-paths src -iy
举例说明,在/opt/ros_ws中有大量用于ROS教程的功能包源码,到此文件夹下运行上述命令,就可以为这些功能包安装依赖项。