3. 基础开发工具安装

好,咱们进入第三章。说实话,这一章的内容看起来有点「杂」,但你别小看它。我见过太多新手,代码写得挺溜,结果在版本控制上翻了车,或者连不上服务器干瞪眼。这些工具,说白了就是你每天都要打交道的「吃饭家伙」。咱们一个一个来搞定。

3.1 Git版本控制:你的代码后悔药

Git这东西,我刚开始用的时候也觉得麻烦。但后来有一次,我不小心把整个工程文件夹给删了……嗯,从那以后,我再也不敢不用Git了。它就是个时光机,让你随时能回到过去。

3.1.1 安装Git

在Ubuntu下安装Git非常简单,一行命令搞定:

sudo apt update
sudo apt install git -y

装完之后,验证一下版本:

git --version

我个人习惯,装完第一件事就是配好用户名和邮箱,不然commit的时候会报错:

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
小提示: 邮箱最好用你GitHub上注册的那个,这样提交记录能关联上你的账号。

3.1.2 配置SSH密钥(免密推送)

每次push都输密码?太烦了。我建议你配个SSH密钥,一劳永逸。

ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

一路回车,生成完之后,把公钥加到GitHub上:

cat ~/.ssh/id_rsa.pub

复制输出的内容,去GitHub的 Settings → SSH and GPG keys 里添加即可。

注意: 私钥文件(id_rsa)千万别泄露!我曾经有个同事把私钥传到了公开仓库,结果被人拿去乱搞,差点出事。

3.1.3 基本操作流程

你只需要记住这几个命令,日常开发就够用了:

命令 作用
git init 初始化仓库
git clone <url> 克隆远程仓库
git add . 暂存所有改动
git commit -m "msg" 提交到本地仓库
git push 推送到远程
git pull 拉取远程更新
git status 查看当前状态
git log 查看提交历史

举个例子,你从Apollo仓库拉代码:

git clone https://github.com/ApolloAuto/apollo.git
cd apollo
git checkout master
核心逻辑: Git的流程就是「工作区 → 暂存区 → 本地仓库 → 远程仓库」。你改代码是在工作区,git add 送到暂存区,git commit 存到本地,git push 才真正发到远程。

3.2 编辑器选择:Vim vs VS Code

编辑器这东西,其实没有绝对的好坏。我个人是两者都用——服务器上改配置用Vim,本地写代码用VS Code。你想想看,各有各的战场。

3.2.1 Vim:服务器上的瑞士军刀

Vim是终端里的编辑器,没有图形界面。你SSH到服务器上,想改个配置文件,Vim就是最好的选择。

安装:

sudo apt install vim -y

基本操作,你记住这几个就够了:

  • i — 进入插入模式(开始打字)
  • Esc — 退出插入模式
  • :wq — 保存并退出
  • :q! — 不保存强制退出
  • /keyword — 搜索关键字
  • dd — 删除当前行
  • yy — 复制当前行
  • p — 粘贴
小技巧: 刚学Vim时,很多人不知道怎么退出。别笑,我当年也卡在Vim里出不来。记住 :q! 就是「我不干了,直接退」。

3.2.2 VS Code:图形化开发利器

VS Code是微软出的免费编辑器,插件生态非常丰富。做Apollo开发,我推荐你装这几个插件:

  • C/C++ — 代码补全和调试
  • Python — Python支持
  • GitLens — 可视化Git历史
  • Remote - SSH — 远程开发(这个后面会讲)
  • YAML — Apollo的配置文件很多是YAML格式

安装VS Code:

sudo snap install --classic code

或者去官网下载.deb包安装也行。

3.3 SSH服务与远程连接配置

做自动驾驶开发,你不可能总在车上的工控机前敲键盘。大部分时候,你是通过SSH远程连上去的。说白了,SSH就是你的「远程桌面」,只不过它是纯命令行的。

3.3.1 安装SSH服务

在工控机(或者服务器)上,你需要开启SSH服务:

sudo apt install openssh-server -y
sudo systemctl start ssh
sudo systemctl enable ssh   # 开机自启

检查服务是否运行:

sudo systemctl status ssh

看到 active (running) 就对了。

3.3.2 从你的电脑连接

在你自己电脑的终端里:

ssh username@ip_address

比如:

ssh apollo@192.168.1.100

第一次连接会提示确认指纹,输入 yes 就行。

注意: 默认端口是22。如果你改了端口,要用 -p 参数指定。我曾经遇到过有人把SSH端口改成2222,结果自己忘了,连了半天连不上……

3.3.3 配置免密登录(推荐)

每次SSH都输密码?太累了。用密钥对登录:

ssh-copy-id username@ip_address

这条命令会把你的公钥传到服务器上。之后再连接就不用密码了。

3.3.4 VS Code Remote-SSH

这是我最喜欢的功能。你可以在VS Code里直接打开远程服务器上的代码,就像在本地一样编辑、调试。

步骤:

  1. 安装 Remote - SSH 插件
  2. 按 F1,输入 Remote-SSH: Connect to Host
  3. 输入 username@ip_address
  4. 连接成功后,打开远程文件夹即可

这样一来,你本地电脑上只需要装个VS Code,所有代码都在服务器上跑。编译、运行都在远程,体验跟本地一样流畅。

3.4 本章知识体系

下面这张图,帮你理清这三个工具之间的关系:

基础开发工具知识体系 Git 版本控制 代码时光机 clone / add / commit push / pull / status 编辑器 Vim / VS Code 服务器上 → Vim 本地开发 → VS Code SSH 远程连接 远程操控工控机 ssh user@ip 免密登录 / Remote-SSH 三者如何协同工作? 1. 通过 SSH 远程连接到工控机(或服务器) 2. 在服务器上用 Vim 快速修改配置文件 3. 用 Git 管理代码版本,随时回滚或同步到 GitHub 4. 本地用 VS Code + Remote-SSH 实现远程开发体验

这三个工具,说白了就是一套组合拳。Git管代码,编辑器写代码,SSH连机器。你把这套流程跑通了,后面的Apollo编译、调试才能顺利进行。

我的建议: 别急着一次性全搞懂。先装好Git,配好SSH,能连上服务器再说。编辑器嘛,用着用着就熟了。我当年也是从「Vim里不知道怎么退出」开始的,现在不也活得好好的?

好,这一章就到这儿。工具都装好了,下一章咱们就开始搞真正的Apollo源码编译了。