2、开发环境搭建(上):Ubuntu 20.04系统安装与配置、双系统与虚拟机方案对比、基础开发工具安装(Git、Vim、VS Code)

好,咱们正式开始动手了。

做自动驾驶仿真,第一件事不是写代码,而是搭环境。我见过太多人一上来就急着跑demo,结果折腾半天卡在依赖问题上。说实话,环境搭好了,后面能省80%的坑。这一章,咱们就把开发环境彻底搞定。

2.1 操作系统选型:为什么是Ubuntu 20.04?

你可能要问:现在都Ubuntu 22.04甚至24.04了,为什么还选20.04?

原因很简单——稳定性和生态兼容性。我个人习惯是,做工程开发不追新。Ubuntu 20.04是LTS版本,支持到2025年,而且ROS、Autoware、Carla这些仿真平台对20.04的支持最成熟。我在项目中遇到过,有人用22.04装ROS Melodic,结果一堆依赖冲突,折腾了两天。说白了,工具是拿来用的,不是拿来折腾的。

核心结论:Ubuntu 20.04 + ROS Noetic,是目前自动驾驶仿真最稳的组合。

2.2 双系统 vs 虚拟机:到底怎么选?

很多新手会纠结这个问题。我直接给你答案——看你的硬件和需求。

方案 优点 缺点 适合场景
双系统 性能接近原生,GPU直通,实时性好 切换系统需重启,磁盘分区麻烦 需要跑仿真、训练模型、用GPU加速
虚拟机 安装简单,随时快照,不破坏Windows 性能损失20%-30%,GPU支持差 学习测试、轻量开发、不想动磁盘

我个人建议:如果你有独立显卡(NVIDIA),且打算认真做仿真,直接上双系统。虚拟机跑Carla或者Autoware,帧率会掉得你怀疑人生。我曾经在虚拟机上跑Carla,结果只有5帧,根本没法用。后来切到双系统,直接满帧60。

小技巧:如果你只是先体验一下,可以用虚拟机装个Ubuntu 20.04,装好ROS和基础工具,跑跑小demo。等确定要深入了,再切双系统也不迟。

警告:装双系统前,一定要备份Windows数据!我见过有人分区时手滑,整个硬盘数据全没了。别问我怎么知道的...

2.3 Ubuntu 20.04 系统安装与配置

安装过程我就不一步步截图了,网上教程一大堆。我只说几个关键点,这些是我踩过的坑。

2.3.1 制作启动盘

用Rufus或者balenaEtcher都行。注意:写入模式选“DD镜像”,别选“ISO写入”。否则启动时会报错。

2.3.2 磁盘分区建议

我习惯这样分:

  • /boot:1GB,放内核和引导文件
  • /:50GB,系统根目录
  • /home:剩余空间,放代码、数据、模型
  • swap:16GB,内存不够时顶一下

你想想看,代码和模型都放/home,以后重装系统也不怕丢数据。我当年第一次装系统,把所有东西都塞在根目录,结果重装时全没了...嗯,血的教训。

2.3.3 安装后的基础配置

装完系统第一件事,换源。别用官方源,慢得要命。

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源(选一个快的就行)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新
sudo apt update && sudo apt upgrade -y

然后装一些必备工具:

sudo apt install -y build-essential cmake curl wget net-tools

2.4 基础开发工具安装

环境搭好了,接下来装吃饭的家伙。

2.4.1 Git:版本控制必备

做项目不用Git?那你等着后悔吧。我见过有人写了一个月的代码,不小心删了,找不回来...Git就是你的后悔药。

sudo apt install -y git
git --version  # 验证安装

# 配置基本信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

我个人习惯再加几个别名:

git config --global alias.st status
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout

这样敲起来快很多。你试试看,用git st代替git status,省三秒也是省。

2.4.2 Vim:终端下的编辑器之王

你可能觉得Vim过时了。但我要说,SSH到服务器上改配置时,Vim是你唯一的选择。不会Vim?那你连个配置文件都改不了。

sudo apt install -y vim

装完建议配一下:

vim ~/.vimrc

写入以下内容:

set number          " 显示行号
set tabstop=4       " Tab宽度4
set shiftwidth=4    " 缩进宽度4
set expandtab       " 用空格代替Tab
set autoindent      " 自动缩进
syntax on           " 语法高亮

嗯,这些配置够你日常用了。别去折腾那些花里胡哨的插件,先学会基本操作:i插入、Esc退出、:wq保存退出、:q!不保存退出。就这四个,够你活下去了。

2.4.3 VS Code:主力开发IDE

写代码我还是推荐VS Code。轻量、插件丰富、对Python和C++支持好。

安装方式有两种:

方法一:直接下载deb包

# 去官网下载 .deb 文件
# 然后
sudo dpkg -i code_*.deb
sudo apt install -f  # 修复依赖

方法二:用snap(我推荐这个)

sudo snap install --classic code

装完建议装这几个插件:

  • Python:微软官方,Python开发必备
  • C/C++:微软官方,C++开发必备
  • ROS:ROS开发辅助,语法高亮、代码补全
  • GitLens:Git历史可视化,谁改了哪行一目了然
  • Remote - SSH:远程开发,连到服务器上写代码

我的习惯:VS Code配合Remote-SSH,在本地写代码,在服务器上编译运行。这样既享受了本地IDE的流畅,又利用了服务器的算力。做仿真训练时特别爽。

2.5 本章小结

这一章我们干了三件事:

  1. 选了Ubuntu 20.04作为开发系统,明确了双系统和虚拟机的取舍
  2. 完成了系统安装和基础配置,包括换源、分区、装必备工具
  3. 装好了Git、Vim、VS Code三个核心开发工具

环境搭好了,下一章咱们开始装ROS和仿真平台。到时候你就能跑起来第一个自动驾驶demo了。

记住一句话:环境搭得好,开发没烦恼。别急着写代码,先把地基打牢。

下一章预告:3、开发环境搭建(下):ROS Noetic安装与配置、Carla仿真器部署、Autoware入门


公众号:蓝海资料掘金营,微信deep3321