Ubuntu 20.04 LTS 上 ROS Noetic 安装踩坑全记录:从‘无法下载’到成功运行小海龟
Ubuntu 20.04 LTS 上 ROS Noetic 安装实战从网络困境到小海龟畅游第一次在Ubuntu上安装ROS的经历就像新手司机第一次开手动挡——明明按照教程操作却总在某个环节突然熄火。本文将带你完整走一遍我在Ubuntu 20.04上安装ROS Noetic的全过程重点不是展示一帆风顺的理想路径而是还原那些真实出现的报错信息、背后的原因分析以及最终让系统跑起来的实用解决方案。1. 环境准备避开那些看不见的坑在开始安装ROS之前有几个容易被忽略但至关重要的准备工作。不同于大多数教程只告诉你执行这些命令我想先解释为什么需要这些步骤。软件源配置是第一个关键点。由于网络环境差异直接使用官方源可能会导致下载速度极慢甚至失败。我推荐同时配置官方源和中科大镜像源作为备用# 官方源备用 sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list # 中科大镜像源推荐优先尝试 sudo sh -c . /etc/lsb-release echo deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main /etc/apt/sources.list.d/ros-latest.list注意两条命令看似相似但第二条使用了系统变量动态获取Ubuntu版本代号适应性更强密钥添加环节常被当作形式化步骤但实际上它确保了软件包的真实性。执行以下命令时如果遇到连接问题可以尝试更换keyserver端口sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654系统更新是另一个容易出问题的环节。建议先单独执行sudo apt update观察输出而不是直接组合命令。这样当出现暂时不能解析域名等错误时可以及时发现问题所在。2. 核心安装当apt变得不可预测进入实际安装阶段ros-noetic-desktop-full这个看似简单的安装命令背后可能隐藏着各种状况。根据我的实测经验可能会遇到以下几种典型情况错误类型现象描述解决方案Hash校验失败反复显示获取...后报Hash校验和不符保持网络稳定重复执行原命令依赖关系断裂提示未满足的依赖关系如python3-catkin-pkg-modules执行sudo apt --fix-broken install修复文件覆盖冲突提示尝试覆盖...该文件已存在于系统中使用sudo dpkg -i --force-overwrite强制覆盖最棘手的可能是第三种情况此时需要先获取报错中提到的具体文件路径然后执行sudo dpkg -i --force-overwrite /var/cache/apt/archives/python3-catkin-pkg-modules_0.5.0-1_all.deb # 替换为实际路径 sudo apt-get -f install这个过程中最需要的是耐心——我重复执行了四次安装命令才最终成功。每次失败后终端输出的错误信息都是解决问题的关键线索不要轻易清屏或关闭终端。3. rosdep初始化网络问题的终极考验当系统提示rosdep初始化失败时真正的挑战才刚刚开始。这个环节几乎就是中国开发者的专属关卡主要因为rosdep默认使用的GitHub资源经常无法稳定访问。找不到rosdep命令是最先可能遇到的问题sudo apt install python3-rosdep2 # 安装缺失的包接下来执行sudo rosdep init时可能会看到最令人头疼的错误ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.这个问题需要通过修改hosts文件解决但不同网络环境下有效的IP可能不同。以下是我测试可用的方案sudo gedit /etc/hosts # 在文件末尾添加一行 199.232.28.133 raw.githubusercontent.com如果遇到文件已存在的错误需要先删除原有文件sudo rm /etc/ros/rosdep/sources.list.d/20-default.list初始化成功后rosdep update同样可能因网络问题失败。这时不要放弃——我执行了三次才成功。可以尝试在不同时间段重复执行或者使用手机热点等替代网络环境。4. 最后的冲刺环境配置与验证安装完成后还需要几个步骤才能真正开始使用ROS安装辅助工具sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool环境变量配置echo source /opt/ros/noetic/setup.bash ~/.bashrc source ~/.bashrc测试核心功能 启动ROS核心服务时如果报错缺少python3-roslaunch需要补充安装sudo apt install python3-roslaunch roscore # 应该能看到类似下图的输出小海龟测试是验证安装是否成功的终极标准。在两个终端分别执行# 终端1 - 启动仿真器 rosrun turtlesim turtlesim_node # 终端2 - 启动控制端 rosrun turtlesim turtle_teleop_key记住要把光标放在控制终端才能用方向键操作。如果小海龟能正常移动恭喜你——这场与安装过程的搏斗终于取得了胜利。那些红色的错误信息和黄色的警告现在都化为了终端窗口中那只欢快游动的小海龟。