本文主要是介绍小白编译AnyQ-dockerlinux[CentOs]——AnyQ系列之一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AnyQ小白编译-docker&linux[CentOs]
- 一、首先要解决的问题
- 二、 使用官方docker编译(不建议)
- 三、在CentOS7编译(建议)
- 四、编译成功之后的运行
- 五、我编译好的阿里云镜像
- 六、可能遇到各种问题的集合
一、首先要解决的问题
那当然是网速了!我家移动宽带,平常下个电影10M/s,可是从github下载代码最多才20k/s的网速,还时不时断掉要重新下!至于百度到的hosts解决方案,实测不行了(2020年1月24日至27号这几天我试了很多遍)。具体怎么解决,这里不能说,自行研究解决。解决不了网速,后面编译的时候还要下载十几处github及其他依赖代码,代码下不动又各种编译报错,折腾三天依然没有进展人是会崩溃的。
另外我硬件配置是笔记本联想Y471A:四核2.2GHz、10G运存;
系统配置:win10_64位系统,Docker for Windows。
二、 使用官方docker编译(不建议)
需要特别说明的是,因为版本更迭不同步,官方给的paddlepaddle镜像与AnyQ需要的环境并不是很匹配。除cmake版本回退以外,还有其他问题容易产生。而且官方的paddlepaddle镜像臃肿,占用存储。
1. 拉取docker镜像
# paddle官方镜像
docker pull paddlepaddle/paddle:latest-dev# paddle国内镜像
docker pull hub.baidubce.com/paddlepaddle/paddle:latest-dev
2.运行镜像将镜像映射到端口上并启动容器
##运行镜像,将生成的容器命名为AnyQ,并且AnyQ的端口8999映射为电脑主机9999
docker run --name anyq -itd --privileged=true -p 9999:8999 paddlepaddle/paddle:latest-dev /bin/bash
##启动容器AnyQ
docker exec -it anyq /bin/bash
3. docker中容器上网问题
这也是个坑,你以为主机能上网就OK了,nonono!如果你是linux系统用docker,采用host模式启动容器应该好解决。windows系统是在Hyper-V虚拟linux系统在其中运行docker镜像,host模式只是与虚拟的linux进行连接。
我摸索的方法如下:在上网客户端里打开“允许来自局域网的连接”选项。
然后在容器AnyQ中设置http_proxy运行如下两行命令:
export http_proxy="http://192.168.1.105:10809"
export https_proxy="http://192.168.1.105:10809"
192.168.1.105是家里路由分配给我笔记本的IP,端口是上网客户端里开放的http代理端口。
此时输入curl cip.cc命令如下:
λ 4f*****5cf /home curl cip.cc
IP : 40.**.9*.31
地址 : 中国 *港 mi****ft.com数据二 : *国 | Mi***t公司数据三 : 中国香* | *软URL : http://www.cip.cc/4*.**.**.31
表明上网成功。
4. 检查cmake版本
cmake/gcc/g++ --versionbison -V
我运行的时候cmake版本应该是3.16.0,编译时会产生以下报错:
paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/build.make:60: *** target pattern contains no '%'. Stop.
CMakeFiles/Makefile2:2828: recipe for target 'paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/all' failed
make[4]: *** [paddle/fluid/framework/CMakeFiles/framework_py_proto.dir/all] Error 2paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/build.make:60: *** target pattern contains no '%'. Stop.
CMakeFiles/Makefile2:2163: recipe for target 'paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/all' failed
make[4]: *** [paddle/fluid/platform/CMakeFiles/profiler_py_proto.dir/all] Error 2
手动安装低版本cmake,v3.2.2及v3.4.0我都测试过了,是可以的。参考博客:cmake替换版本
我docker中的版本如下:
λ 4f88a5cf /home g++ --version
g++ (Ubuntu 4.8.5-4ubuntu2) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.λ 4f885cf /home bison -V
bison (GNU Bison) 3.0.4
Written by Robert Corbett and Richard Stallman.Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source <
这篇关于小白编译AnyQ-dockerlinux[CentOs]——AnyQ系列之一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!