主要记录一下自己在ubuntu22.04中安装humble踩的坑,最后顺利安装humble过程
一开始用小鱼的一键安装,尝试多少次都会失败,终端会显示
Run CMD Task:[ls /opt/ros/humble/setup.bash] [-][0.00s] CMD Result:code:2
反正就是安装不上。后面通过另外一个方式安装
1、准备工作,设置安装源
sudo apt install software-properties-common
sudo add-apt-repository universesudo apt update && sudo apt install curl
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
2、安装ROS2
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
但是这里会提示错误
apee@apee-ubuntu:~$ sudo apt install ros-humble-desktop
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libicu-dev : 依赖: libicu70 (= 70.1-2) 但是 70.1-2ubuntu1 正要被安装
libudev-dev : 依赖: libudev1 (= 249.11-0ubuntu3.12) 但是 249.11-0ubuntu3.15 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
通过查阅其他的资料,这个原因是因为:系统中部分依赖版本与 ROS 2 Humble 要求的版本不一致,导致无法安装。主要是下面的依赖
libicu-dev 需要的是 libicu70=70.1-2,你系统中是 70.1-2ubuntu1
libudev-dev 需要的是 libudev1=249.11-0ubuntu3.12,但是系统中是 249.11-0ubuntu3.15
通过一下命令来降级依赖
sudo apt install libicu70=70.1-2 libudev1=249.11-0ubuntu3.12
禁止其自动升级
sudo apt-mark hold libicu70 libudev1
然后在此安装humble ,终端不再报错,可以继续安装了
sudo apt update
sudo apt install ros-humble-desktop
之后安装ROS2的开发工具
sudo apt install ros-dev-tools
最后将ROS2的安装路径添加在bashrc中就可以正常的使用humble了。