本文主要是介绍安装Apollo时常见的错误总结和使用窍门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 缺少zlib
进入docker后编译时报错:ERROR: An error occurred during the fetch of repository 'zlib'
,如下图所示:
出现这个错误的原因是Apollo依赖protobuf库,而protobuf库又依赖zlib库。这些库都要从网上下载,而protobuf库提供的zlib下载链接是https://zlib.net/zlib-1.2.11.tar.gz,问题是这个链接已经失效了,下载当然会失败。
解决方法是替换新的可用链接,具体就是修改Apollo项目文件夹中的.cache/bazel/540135163923dd7d5820f3ee4b306b32/external/rules_proto/proto/private
文件夹里的dependencies.bzl
文件,将"zlib"的部分改成以下即可。
"zlib": {"sha256": "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff","build_file": "@com_google_protobuf//:third_party/zlib.BUILD","strip_prefix": "zlib-1.2.11","urls": ["https://github.com/madler/zlib/archive/v1.2.11.tar.gz",],}
见微知著,从这个小问题便可以看出百度的Apollo自动驾驶项目居然需要从美国服务器下载很多的依赖库。而且一旦下载不成功就报错,这种严重依赖网络条件的安装方式对不熟悉Linux的用户来说实在是太不友好了,完全是逼着用户自学Linux,这不是欺负人不懂Linux吗。反正我是自学grep
命令,把文件夹里所有包含关键字“https://zlib.net/zlib-1.2.11.tar.gz”的位置导出到txt里,然后一个个看应该改哪一个文件。一个号称安全性很高的自动驾驶项目,安装起来居然需要一些不靠谱的时刻可能改变的网络链接,真是可笑。百度为什么不把所有依赖都放到自己家的网盘里提供一次性打包下载呢。
2 FATAL: mkdir('/apollo/.cache/bazel'): (error: 13): Permission denied
运行脚本sudo ./apollo.sh build_opt
编译源代码时报错,如下图。错误的原因可能是使用了sudo
,解决方法是直接用bash ./apollo.sh build_opt
,不要加sudo。但有时候错误是反过来的,也就是不用sudo会报错,这时试试用sudo即可。
3 Error response from daemon: Container is not running
我们重启电脑后,有时用bash docker/scripts/dev_into.sh
会无法进入docker中,报错如下:
Error response from daemon: Container 78fb863e2...... is not running
此时,只需要用docker start
重启docker容器即可,命令如下。
docker start apollo_dev_q
我的容器名字是apollo_dev_q
,换成你自己的即可,不知道自己的容器叫什么可以用docker ps -a
查看,如下图,就是最后
这篇关于安装Apollo时常见的错误总结和使用窍门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!