在Ubuntu20.04上安装ROS

1:在终端上面输入指令:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo gpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg

上面这条指令如果报错:

就先安装url,指令:udo apt update && sudo apt install curl -y

上面这条指令如果报错:

执行指令":sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F42ED6FBAB17C654出现已导入:1,证明成功,如下图所示

输入:sudo apt update

成功:

安装前,最好检查一下的内存是否足够,建议在10g左右,如没有,可以先扩容后再安装,否则容易安装失败如图:

解决办法:

Ubuntu 根目录磁盘空间不足 完整解决方案

❌ 问题分析

弹窗提示根目录仅剩余 957.8MB 空间,这是 ROS 安装失败的核心原因:

ROS Noetic 桌面完整版安装需要至少 8-10GB 空闲空间,当前剩余空间严重不足,会直接导致安装中断、系统卡死

根目录(/)是 Ubuntu 系统的核心分区,空间不足会引发一系列问题:软件安装失败、系统崩溃、无法写入文件等

✅ 第一步:紧急清理(快速释放空间,优先执行)

  1. 清理 APT 缓存(最有效,直接释放 1-5GB)
    bash
    运行

清理已下载的安装包缓存

sudo apt clean

清理过期的依赖包

sudo apt autoremove -y

彻底清理无用包

sudo apt autoclean

  1. 清理系统日志(快速释放数百 MB - 数 GB)

bash

运行

清理轮转日志

sudo journalctl --vacuum-size=100M

清理/var/log下的旧日志

sudo rm -rf /var/log/.gz /var/log/**/ .gz

  1. 清理用户缓存(安全无风险)

bash

运行

清理浏览器、软件缓存

rm -rf ~/.cache/*

清理下载目录(如果有大文件)

rm -rf ~/Downloads/*

  1. 清理旧内核(安全,仅保留当前在用内核)

bash

运行

查看当前在用内核(uname -r的版本不要删)

uname -r

卸载旧内核(替换成你要删除的版本号)

sudo apt remove linux-image-5.15.0-* linux-headers-5.15.0-* -y

✅ 第二步:深度清理(彻底释放空间)

  1. 定位大文件(找出占用空间的元凶)
    bash
    运行

查看根目录各文件夹占用

sudo du -sh /* | sort -hr

定位/home下的大文件

du -sh ~/* | sort -hr

定位/var下的大文件(日志、缓存)

sudo du -sh /var/* | sort -hr

根据结果手动删除无用的大文件(如旧安装包、日志、下载的镜像等)

  1. 清理 Snap/Flatpak(如果安装了,占用空间极大)

bash

运行

清理Snap旧版本

sudo snap set system refresh.retain=2

卸载无用的Snap包

snap list

sudo snap remove <包名>

✅ 第三步:ROS 安装空间优化(避免再次爆满)

  1. 选择轻量版 ROS 安装(节省 50% 空间)
    如果空间仍然紧张,不要安装desktop-full,改用轻量版:
    bash
    运行

基础版(仅核心组件,约2GB)

sudo apt install ros-noetic-ros-base -y

桌面版(含rviz等常用工具,约5GB)

sudo apt install ros-noetic-desktop -y

完整版(含gazebo等仿真工具,约10GB)

sudo apt install ros-noetic-desktop-full -y

  1. 迁移 ROS 工作空间到其他分区

如果根目录空间长期不足,将 ROS 工作空间迁移到 /home 分区(通常空间更大):

bash

运行

1. 停止ROS

killall -9 roscore

killall -9 rosmaster

2. 迁移工作空间

mv ~/catkin_ws /home/yourname/catkin_ws

3. 建立软链接(不影响原有路径)

ln -s /home/yourname/catkin_ws ~/catkin_ws

✅ 第四步:长期解决方案(从根本解决空间问题)

方案 1:扩容根目录(推荐,一劳永逸)

如果是虚拟机(从dandan-vpc看是 VMware 虚拟机),直接扩容虚拟机磁盘:

VMware 中:虚拟机设置 → 硬盘 → 扩展 → 增大容量(如从 20GB 扩到 60GB)

Ubuntu 中用gparted工具扩容根分区,将未分配空间合并到/分区

方案 2:挂载额外磁盘

如果是物理机,挂载一块新硬盘到/opt目录(ROS 默认安装在/opt/ros):

bash

运行

1. 格式化新磁盘(替换/dev/sdb1为你的磁盘)

sudo mkfs.ext4 /dev/sdb1

2. 挂载到/opt

sudo mount /dev/sdb1 /opt

3. 开机自动挂载

echo '/dev/sdb1 /opt ext4 defaults 0 0' | sudo tee -a /etc/fstab

📌 关键提醒

先清理再安装:必须先执行清理命令,确保根目录剩余空间≥10GB,再执行 ROS 安装,否则会安装失败

不要忽略空间警告:根目录空间不足会导致系统不稳定,甚至无法启动

虚拟机用户:优先扩容虚拟机磁盘,这是最彻底的解决方案

清理前备份:重要文件先备份,避免误删

安装ros指令:sudo apt install ros-noetic-desktop-full -y

完成后输入ros tab会出现ros相关内容,我的

配置环境

source /opt/ros/noetic/setup.bash

roscore

看到 started core service /rosout,就说明 ROS 完全正常,环境变量也生效了!

sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential -y

到这里ros全部安装完毕

再次使用ctrl+alt+c再打开一个终端界面

输入:rosrun turtlesim turtlesim_nod

再次使用ctrl+alt+c再打开一个终端界面,启动键盘控制

输入:rosrun turtlesim turtle_teleop_key

然后小乌龟就可以跑啦

相关推荐
左手の明天3 小时前
SLIP 协议封装与解析详解:原理、C 代码与实战案例
linux·c语言·开发语言·c++
꯭自꯭闭꯭3 小时前
达梦SQL优化相关
linux·运维·数据库·sql
一条破秋裤4 小时前
Linux 共享内存通信:POSIX 共享内存与 mmap
linux·运维·服务器
谷哥的小弟6 小时前
CentOS Stream浴火重生
linux·运维·centos
程序员-Benothing7 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
FPGA小徐7 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
qetfw8 小时前
Debian Chrony 时间同步、RAID5 与 LUKS 磁盘加密配置
linux·debian
东城居士11 小时前
Linux驱动阻塞与非阻塞访问的理解
linux·嵌入式系统
..Dauntless..11 小时前
【Linux】进程地址空间初步理解
linux·运维·服务器
Julien200411 小时前
Docker 网络(一)
linux·运维·服务器·ssh·学习方法