这里以docker版本为例,在新版本下会更加稳定
首先,你需要按照Docker官方的教程,安装docker
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/docker-installation
不想看的话直接看这里
##### Old Docker Cleanup
$ sudo apt-get remove docker docker-engine docker.io
##### Docker CE Installation
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb)
sub 4096R/F273FCD8 2017-02-22
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce
$ sudo docker run hello-world
最后一步出错:Unable to find image 'hello-world:latest' locally
这是因为docker服务器在国外,基于网速与“和谐墙”的问题,所以我们在国内操作国外镜像可能无法正常拉取,这需要我们为docker设置国内的阿里云镜像加速器。
解决办法参考:https://zhuanlan.zhihu.com/p/143805385
然后根据autoware的官方的教程链接,配置:
https://gitlab.com/autowarefoundation/autoware.ai/autoware/-/wikis/Generic-x86-Docker
不想看的话还是看这里
$ git clone https://gitlab.com/autowarefoundation/autoware.ai/docker.git
$ cd docker/generic
$ ./run.sh
有可能出现错误:Changing autoware user ID to match your host's user ID (0).
解决办法:则在运行命令后加上-s 直接跳过 UID modification step(参考)
如下:./run.sh -s
出现如下界面则表示创建容器成功
用户名前出现autoware@
理论到这一步就把autoware的docker版本装好了。
在执行./run.sh
时,通常会要求root权限,如果不想每次运行docker都要用root权限,可以用下面的方法配置:Linux post-installation steps for Docker Engine
依然是不想仔细看的话,直接看这里
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker run hello-world
附:一些相关问题的解决
1. Run autoware docker without nvidia-driver
由于我的新电脑没有nvidia的graphic cards,只有Intel的,所以在运行run.sh
的时候,可以把文件里的CUDA
选项改为off
2. Docker运行后不想每次都被自动删除
run.sh
的脚本,默认是会在每次运行结束,退出docker
container之后,自动kill掉之前用过的docker
container的,这样是为了不占据太多存储,因为每次运行run.sh
,都会创建一个新的docker
container,但是我们常常会在docker
container中做一些设置,配置等等。要想不被删除,可以在run.sh
文件中,翻到最后面,找到docker run -it
后面的一个,--rm
,这个是每次exit
后删除的意思。
=============================================================
这一步可以省略
=============================================================
我没有试过source build,贴一个官方的链接,有需要的同学可以自行实践