Ubuntu 20.04.3 LTS安装ROS2 Humble的三类技术问题咨询
我来帮你逐个拆解这些安装ROS2 Humble时遇到的问题,都是实际操作里容易踩的坑,咱们一步步说:
问题1:sudo apt upgrade导致系统小版本升级,是否需要禁用该命令?
首先得给你吃个定心丸:Ubuntu 20.04.x的小版本(比如从20.04.3升到20.04.6)属于LTS版本的常规点更新,本质是累积了安全补丁、bug修复和硬件驱动更新的整合包,完全不会把系统升级到22.04这类大版本,安全性和稳定性都有保障,反而建议你定期执行,毕竟系统安全补丁不能少。
如果你的需求是只升级特定软件包(比如Python相关),而不想更新系统组件,可以用以下两种方式:
- 升级单个/多个指定包:用
sudo apt install --only-upgrade <包名>,比如升级Python pip就写sudo apt install --only-upgrade python3-pip - 排除系统内核等组件:可以通过给特定包加固定版本来实现,比如
sudo apt-mark hold linux-image-generic linux-headers-generic,这样后续apt upgrade就不会更新内核,但这种方式只建议你在特殊场景下用,长期来看还是不推荐,毕竟内核补丁很重要。
问题2:执行sudo apt install ros-humble-desktop提示找不到包,LXD容器方案为何走向源码安装?
官方文档说得没错:ROS2 Humble的Debian二进制包仅支持Ubuntu 22.04 Jammy,这是因为Humble是和22.04同步发布的LTS版本,二者的依赖库版本完全匹配。你同事说能在20.04上用Debian包安装,大概率是用了第三方非官方源,或者他记错了版本(比如装的是Foxy而不是Humble),非官方源的兼容性和稳定性都没保障,不推荐你跟风。
至于你用LXD容器时走到源码安装,应该是你创建的容器还是20.04版本的?正确的做法是在LXD里创建一个Ubuntu 22.04的容器,然后在容器内按照官方文档安装Humble的Debian包,这样就能避开20.04的限制,而且容器和主机环境隔离,不会影响你的原有系统。如果一定要在20.04主机上装Humble,那确实只能走源码编译的路子。
问题3:LXD容器中ROS2 Humble的setup.bash路径在哪里?
这个得看你在容器里的安装方式:
- 如果是在22.04容器里用Debian包安装的Humble,那路径和主机上的常规路径一致:
/opt/ros/humble/setup.bash - 如果是在容器里源码编译的Humble,那路径取决于你的工作空间位置。比如你把源码放在
~/ros2_humble_ws里,编译完成后,setup.bash会在工作空间的install目录下,也就是~/ros2_humble_ws/install/setup.bash
你可以先进入容器(用lxc exec <容器名> bash),然后用find / -name "setup.bash" 2>/dev/null命令全局搜索,就能快速定位到文件路径了。
备注:内容来源于stack exchange,提问作者나이승민




