1.docker 安装
此处参考官方安装教程
docker官方教程
1.1 卸载旧版本
运行以下命令以卸载所有冲突的软件包
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
1.2 更新软件包索引并安装软件包以允许使用
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
1.3 添加 Docker 的官方 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
1.4 使用以下命令设置存储库
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1.5 更新包索引
sudo apt-get update
1.6 安装 Docker Engine、containerd 和 Docker Compose
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.7 验证
docker -v #查看版本,可能要加sudo
sudo docker pull hello-world
sudo docker run hello-world
1.8 更换镜像源
通过修改daemon配置文件/etc/docker/daemon.json来使用加速器(如果安装nvidia container toolkit的话配置文件会提示有冲突,自己按照提示选择一个保留)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5yst7tuh.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
1.9 将用户加入docker组,解决执行docker命令需要加sudo问题
sudo groupadd docker
sudo usermod -aG docker 用户名
sudo systemctl restart docker
sudo chmod a+rw /var/run/docker.sock
1.10 加入开机自启
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
2 安装nvidia-container-toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
3.克隆源码仓库
3.1 下载
github
git clone https://github.com/ApolloAuto/apollo.git
国内 gitee
git clone https://gitee.com/apolloconfig/apollo.git
如果要克隆其它版本,加上-b 版本号就行,如下Apollo 6.0:
git clone -b v6.0.0 https://gitee.com/apolloconfig/apollo.git
3.2 启动开发容器
进入Apollo源码所在根目录,启动apollo docker容器
./docker/scripts/dev_start.sh
如果只用Cyber RT
./docker/scripts/cyber_start.sh
国内执行以下命令更快
./docker/scripts/cyber_start.sh -g cn
3.3 进入容器
启动apollo
./docker/scripts/dev_into.sh
如果只启动cyber rt
./docker/scripts/cyber_into.sh
3.4 在容器中构建apollo
构建apollo
./apollo.sh build
只构建cyber rt (最好加上sudo,避免出现因权限导致的错误)
./apollo.sh build cyber
如果报错ERROR: An error occurred during the fetch of repository ‘zlib’
这是因为zlib的链接失效了,进入 /apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/external/rules_proto/proto/private/dependencies.bzl
修改如下,
"zlib": {
"sha256": "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff",
"build_file": "@com_google_protobuf//:third_party/zlib.BUILD",
"strip_prefix": "zlib-1.2.11",
"urls": [
"https://zlib.net/fossils/zlib-1.2.11.tar.gz",
],
}
注意,其他博主提供的以下链接已经失效了https://github.com/madler/zlib/archive/v1.2.11.tar.gz
如果本文链接失效,可进入https://zlib.net/ 查找对应版本链接
其它的如果是报链接错误,可根据报错提示的链接用浏览器进行搜索,如果文件能够正常下载说明是网络问题,可用魔法或反复执行编译命令能够解决。
如果报错 No sunch file or directory #include “glog/logging.h”
执行以下命令
sudo apt-get update
sudo apt-get install libgoogle-glog-dev
如果报 Permission denied就是权限问题
可
rm -r /apollo/.cache/bazel
或 加上sudo
sudo ./apollo.sh build cyber
如果还能想起其它问题,以后再加