机器人系统开发ros2-基础学习16-使用 rosdep 管理依赖关系

1. what is rosdep?

rosdep是一个依赖管理实用程序,可以与包和外部库一起使用。它是一个命令行实用程序,用于识别和安装依赖项以构建或安装包。 其本身rosdep并不是一个包管理器;它是一个元包管理器,它使用自己的系统知识和依赖关系来查找要安装在特定平台上的适当包。实际安装是使用系统包管理器完成的(例如apt在 Debian/Ubuntu、dnfFedora/RHEL 等上)。

它最常在构建工作区之前调用,用于在该工作区中安装包的依赖项。

它能够处理单个包或包目录(例如工作区)

2. rosdep 如何发挥作用

rosdep将检查package.xml其路径中的文件或特定包并查找存储在其中的 rosdep 密钥。然后,这些键与中央索引交叉引用,以在各种包管理器中找到适当的 ROS 包或软件库。最后,一旦找到软件包,它们就已安装并准备就绪!

rosdep通过检索本地计算机上的中央索引来工作,这样它就不必在每次运行时访问网络(在 Debian/Ubuntu 上,它的配置存储在/etc/ros/rosdep/sources.list.d/20-default.list)。

3 如何使用 rosdep 工具?

rosdep 安装

如果您使用rosdep ROS,它可以方便地与 ROS 发行版一起打包。这是推荐的获取方式rosdep。您可以使用以下命令安装它:

cpp 复制代码
sudo apt-get install python3-rosdep

在 Debian 和 Ubuntu

上,还有另一个名称类似的软件包,称为python3-rosdep2.如果安装了该软件包,请确保在安装之前将其删除python3-rosdep。

如果您在 ROS 外部使用rosdep,系统包可能不可用。在这种情况下,您可以直接从https://pypi.org安装它

cpp 复制代码
pip install rosdep

4. 使用rosdep

如果这是第一次使用rosdep,则必须通过以下方式初始化:

cpp 复制代码
sudo rosdep init
rosdep update

这将初始化 rosdep 并update更新本地缓存的 rosdistro 索引。update有时 rosdep 可以获取最新索引

最后,我们可以运行来安装依赖项。通常,这是在一个工作区上运行的,在一次调用中包含许多包来安装所有依赖项。如果位于工作区的根目录中包含源代码,则对此的调用将如下所示。rosdep install src

cpp 复制代码
rosdep install --from-paths src -y --ignore-src

分解一下:

  • --from-paths srcpackage.xml指定检查要解析密钥的文件的路径

  • -y意味着对包管理器的所有提示默认为"是"以在没有提示的情况下进行安装

  • --ignore-src意味着忽略安装依赖项,即使 rosdep 键存在,如果包本身也在工作区中。

相关推荐
qq_411262423 分钟前
四博 AI 双目智能交互终端方案
人工智能·智能音箱
AI搅拌机5 分钟前
百度也正式加入开源社区,发布了 ERNIE-Image 模型,直接对标 ZImage 和 Klein
人工智能
电科一班林耿超6 分钟前
机器学习大师课 第 1 课:什么是机器学习?写出你的第一个 AI 程序
人工智能·机器学习
浪客川7 分钟前
UniFFI 网络接口实战:从阿里云 AI 到移动端集成
人工智能·阿里云·云计算
一只数据集7 分钟前
水稻叶片图像与SPAD值标注数据集-140张高质量图像-精准农业机器学习训练数据集
人工智能·深度学习·机器学习
AI技术增长7 分钟前
Pytorch图像去噪实战(一):从0复现DnCNN并解决训练不收敛问题(附完整工程+踩坑总结)
人工智能·pytorch·python
AIminminHu10 分钟前
(AI篇)OpenGL渲染与几何内核那点事-(二-1-(12):给AI一副“身体”有多难?从“缸中之脑”到R2-D2,一文看透具身智能60年进化血泪史
人工智能·具身智能
三克的油12 分钟前
YOLOV5数据学习
人工智能·学习·yolo
海兰14 分钟前
【第22篇】Evaluation Example
人工智能·spring boot·log4j·alibaba·spring ai
喵叔哟17 分钟前
大模型蒸馏全栈实战:从Claude黑盒克隆到开源模型轻量化落地--目录
人工智能