1. 环境准备与系统检查在开始配置Apollo 10.0之前我们需要确保Ubuntu 22.04系统处于最佳状态。我遇到过不少因为基础环境没准备好导致后续安装失败的情况所以这部分特别重要。首先打开终端运行以下命令更新系统sudo apt update sudo apt upgrade -y这个步骤会更新所有已安装的软件包到最新版本避免因为旧版软件导致的兼容性问题。记得检查系统内核版本Apollo 10.0推荐使用5.15或更高版本的内核可以通过uname -r查看。硬件方面你需要一块NVIDIA显卡建议RTX 2060以上至少16GB内存和100GB可用磁盘空间。我实测发现在虚拟机中运行Apollo会遇到性能问题所以强烈建议使用物理机安装。如果你用的是笔记本记得接上电源并设置为高性能模式编译过程很吃资源。2. Docker安装与配置Docker是Apollo运行的基础环境但官方脚本有时候不太稳定。我推荐使用阿里云镜像源来安装速度更快更可靠。以下是详细步骤# 安装必要工具 sudo apt install -y ca-certificates curl gnupg lsb-release # 添加阿里云Docker仓库密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg # 添加仓库 echo deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/aliyun-docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io安装完成后我们需要解决常见的权限问题。很多新手会卡在这里导致后续命令都需要加sudo# 创建docker用户组如果不存在 sudo groupadd docker # 将当前用户加入docker组 sudo usermod -aG docker $USER # 立即生效 newgrp docker验证安装是否成功可以运行docker run hello-world如果看到欢迎信息就说明安装正确。我还建议配置国内镜像加速器修改/etc/docker/daemon.json文件没有就新建{ registry-mirrors: [ https://docker.1panel.live, https://hub.rat.dev ] }最后别忘了重启Docker服务使配置生效sudo systemctl restart docker。3. NVIDIA驱动与CUDA安装这部分是最容易出问题的环节我踩过不少坑。首先检查你的显卡型号和推荐的驱动版本ubuntu-drivers devices建议选择带有recommended标记的驱动版本安装。Ubuntu 22.04提供了两种安装方式方法一通过系统附加驱动安装推荐新手打开软件和更新应用切换到附加驱动标签页选择带有专有和推荐标记的驱动版本点击应用更改并等待安装完成方法二命令行安装sudo apt install -y nvidia-driver-535安装完成后重启电脑运行nvidia-smi应该能看到显卡信息。如果报错可能是驱动没装好需要卸载重装。接下来安装CUDA Toolkit版本选择很关键。Apollo 10.0推荐CUDA 11.8但Ubuntu 22.04默认仓库可能没有。我建议从NVIDIA官网下载runfile安装wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run安装时记得取消勾选驱动安装如果已经装好驱动其他保持默认。安装完成后配置环境变量echo export PATH/usr/local/cuda-11.8/bin:$PATH ~/.bashrc echo export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc验证安装nvcc -V应该显示CUDA 11.8版本。4. NVIDIA Container Toolkit配置这个组件让Docker容器能够使用GPU是Apollo运行的关键。安装步骤如下# 添加仓库密钥 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg # 添加仓库 curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed s#deb https://#deb [signed-by/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # 安装工具包 sudo apt update sudo apt install -y nvidia-container-toolkit配置Docker使用nvidia运行时sudo nvidia-ctk runtime configure --runtimedocker sudo systemctl restart docker测试GPU是否能在容器中使用docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi如果看到和宿主机相同的GPU信息说明配置成功。5. Apollo源码获取与编译终于到了核心环节我建议从Gitee镜像克隆速度比GitHub快很多git clone https://gitee.com/ApolloAuto/apollo.git cd apolloApollo使用自己的环境管理工具aem先安装它./aem init启动容器并进入开发环境./aem start ./aem enter在容器内开始编译这步很耗时建议去喝杯咖啡buildtool build编译时间取决于你的硬件配置我的i7-12700KRTX 3080大约需要18分钟。如果遇到网络问题导致某些包下载失败可以尝试修改容器内的apt源sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list apt update编译完成后可以启动Dreamview来验证安装aem bootstrap start在浏览器打开http://localhost:8888应该能看到Apollo的控制界面。如果启动的是Dreamview端口会是8889。6. 常见问题排查我在多次安装过程中总结了一些常见错误和解决方法Q1: 编译时内存不足A: 尝试增加swap空间sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfileQ2: Docker容器启动失败A: 检查日志docker logs apollo_dev常见原因是NVIDIA驱动版本不匹配。Q3: Dreamview无法打开A: 检查端口是否被占用netstat -tulnp | grep 8888也可以尝试更换端口aem bootstrap start --port 8889Q4: GPU在容器中不可用A: 重新安装nvidia-container-toolkit并检查docker配置docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi7. 性能优化建议为了让Apollo运行更流畅我有几个实测有效的优化技巧关闭图形界面编译时切换到命令行界面(CtrlAltF3)可以节省大量资源使用ccache加速编译在容器内设置export USE_CCACHE1调整编译线程数根据CPU核心数设置比如8核CPUbuildtool build -j8定期清理Dockerdocker system prune -f可以释放磁盘空间使用SSD硬盘机械硬盘的编译时间可能是SSD的3-5倍最后提醒一点Apollo的容器会占用大量磁盘空间建议定期清理旧的镜像和容器。如果后续需要更新代码记得先git pull然后重新编译。