小白编译AnyQ-dockerlinux[CentOs]——AnyQ系列之一

2024-06-18 01:38

本文主要是介绍小白编译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系列之一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070944

相关文章

Docker安装MySQL镜像的详细步骤(适合新手小白)

《Docker安装MySQL镜像的详细步骤(适合新手小白)》本文详细介绍了如何在Ubuntu环境下使用Docker安装MySQL5.7版本,包括从官网拉取镜像、配置MySQL容器、设置权限及内网部署,... 目录前言安装1.访问docker镜像仓库官网2.找到对应的版本,复制右侧的命令即可3.查看镜像4.启

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时