3 · Ubuntu系统安装
说实话,搭建SLAM环境的第一步,就是搞定操作系统。我见过太多新手在Windows上硬磕,最后被各种依赖折磨到崩溃。Ubuntu 20.04 LTS 是我个人最推荐的版本——稳定、包多、社区活跃。这一章咱们就把系统装好,顺便把源换了、基础配置拉满。
双系统还是虚拟机?
我个人习惯是:主力机用双系统,笔记本或临时测试用虚拟机。为什么?双系统能完全调用硬件资源,SLAM 跑数据集、实时相机驱动都不卡。虚拟机方便快照,搞坏了直接恢复,但 3D 加速和 USB 设备透传偶尔会出幺蛾子。
如果你只有一台电脑,又不想每次重启切换,那 VMware 或 VirtualBox 装 Ubuntu 20.04 也完全够学完这门课。我早期在虚拟机上跑过 ORB-SLAM2,除了实时性差点,编译和调试都没问题。
Ubuntu 20.04 LTS —— 为什么是它?
你可能想问:22.04 都出了,为啥还推荐 20.04?说白了,ROS Noetic 官方只支持 20.04。虽然 22.04 也能装,但很多二进制包要自己编译,折腾。我去年帮一个团队迁移到 22.04,结果 g2o 和 Ceres 的依赖冲突搞了两天…… 从那以后,我坚持用 20.04 LTS,省心。
而且 20.04 的维护期到 2025 年,足够你学完 SLAM 并跑通项目。记住:稳定比版本新更重要。
分区建议 —— 别让硬盘成为瓶颈
分区这事,我踩过坑。第一次装 Ubuntu 只给了根目录 20GB,装完 ROS 就满了…… 后来重装了一次。下面是我现在用的分区方案,你可以参考:
| 挂载点 | 大小 | 文件系统 | 说明 |
|---|---|---|---|
| /boot | 1GB | ext4 | 内核和引导文件,不用太大 |
| / | 50~80GB | ext4 | 系统和软件,至少 40GB |
| /home | 剩余空间 | ext4 | 你的代码、数据集、配置文件 |
| swap | 8~16GB | swap | 内存不够时备用,我一般设 8GB |
如果你有固态+机械双硬盘,建议把 / 和 /home 放在固态上,数据集放机械盘。我在项目中遇到过因为硬盘 I/O 导致 bag 回放掉帧的情况,后来把数据集挪到 SSD 就解决了。
换源 —— 让 apt 飞起来
装完系统第一件事:换国内源。默认的官方源在国外,下载速度可能只有几十 KB/s。我一般用清华源或阿里云源,速度能到 10MB/s 以上。操作很简单:
# 备份原 sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 用 sed 一键替换为清华源(Ubuntu 20.04)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
# 更新
sudo apt update && sudo apt upgrade -y
如果你在校园网或公司内网,也可以试试中科大源、华为源。换完源之后,apt 安装软件基本秒下。
🔧 我个人习惯:换源后再装 vim、git、curl、net-tools 这几个基础工具。后面编译 SLAM 项目会频繁用到。
基础配置 —— 让系统更好用
系统装好、源换完,还有几个小配置能提升幸福感:
- 安装 SSH 服务:
sudo apt install openssh-server,方便远程连接。我经常在台式机上装 Ubuntu,然后从笔记本 SSH 过去编译代码。 - 关闭系统休眠:SLAM 编译可能跑几个小时,休眠了还得重新来。用
sudo systemctl mask sleep.target suspend.target hibernate.target关掉。 - 设置中文输入法:虽然写代码用英文,但查资料时中文输入还是方便。安装
ibus-pinyin或fcitx5都行。 - 安装显卡驱动:如果你有 NVIDIA 显卡,去“软件和更新”->“附加驱动”里选一个推荐驱动。别自己从官网下 runfile 装,容易把系统搞崩。我吃过这个亏。
嗯,到这里你的 Ubuntu 20.04 已经 ready 了。