Docker 如何安装gcc/g++;9世纪7号码头工人(世纪7号)
为了使用C++17 includeDocker 如何安装gcc/g++;9世纪7号码头工人(世纪7号),docker,gcc,centos7,Docker,Gcc,Centos7,为了使用C++17 include,我需要centos 7 docker中的gcc-9包 默认情况下,将从常规发行版repo安装gcc 4.8.5 docker运行——rm-it中心:7 #yum安装-y gcc #gcc——版本 gcc(gcc)4.8.5 20150623(红帽4.8.5-44) 是否有任何方法可以轻松安装gcc-9(或更高版本)软件包(即不从源代码构建) 谢谢 注意:需要gcc-9具有良好的C++17支持。 GCC 9发布说明: 使用中的类型和函数不需要立即链接到-lst
,我需要centos 7 docker中的gcc-9包
默认情况下,将从常规发行版repo安装gcc 4.8.5
docker运行——rm-it中心:7
#yum安装-y gcc
#gcc——版本
gcc(gcc)4.8.5 20150623(红帽4.8.5-44)
是否有任何方法可以轻松安装gcc-9(或更高版本)软件包(即不从源代码构建)
谢谢
注意:需要gcc-9具有良好的C++17
支持。GCC 9发布说明: 使用
中的类型和函数不需要立即链接到-lstdc++fs
src:我目前拥有的:
猫码头文件
FROM centos:7 AS env
RUN yum update -y
RUN yum install -y centos-release-scl
RUN yum install -y devtoolset-9
RUN echo "source /opt/rh/devtoolset-9/enable" >> /etc/bashrc
SHELL ["/bin/bash", "--login", "-c"]
RUN gcc --version
因此,你必须:
注意:在Centos上是
/etc/bashrc
,而在ubuntu上是/etc/bash.bashrc
--login
docker构建。
正在将生成上下文发送到Docker守护进程4.096kB
步骤1/32:从centos:7开始作为环境
--->8652b9f0cb4c
步骤2/32:运行yum更新-y
--->使用缓存
--->a2bb269cd8dc
步骤3/32:运行yum安装-y centos release scl
--->使用缓存
--->1184e26c71cf
步骤4/32:运行yum安装-y devtoolset-9
--->使用缓存
--->e678665d2a4e
步骤5/32:运行echo“source/opt/rh/devtoolset-9/enable”>>/etc/bashrc
--->使用缓存
--->fe1745d4ca87
步骤6/32:SHELL[“/bin/bash”、“--login”、“-c”]
--->在2dd7955f4487中运行
拆卸中间容器2dd7955f4487
--->3cf4835bf680
步骤7/32:运行gcc——版本
--->在b5de3266d607中运行
gcc(gcc)9.3.1 20200408(红帽9.3.1-2)
版权所有(C)2019免费软件基金会。
这是自由软件;有关复制条件,请参见源。没有
担保甚至不是为了适销性或适合某一特定目的。
...
什么不起作用
测试1
每次运行都是一个新的shell,因此子bash在第二行丢失
测试2
这里的源代码仅用于第一次运行shell命令,但将丢失
测试3
这可能会起作用,但会导致潜在的意外行为
ENV PATH=/opt/rh/devtoolset-9/root/bin:$PATH
RUN gcc --version | head -1
这里我们只“修复”了路径
变量,但是如果您查看/opt/rh/devtoolset-9/enable
脚本,那么除了更新路径
之外,还有很多事情要做
RUN source /opt/rh/devtoolset-9/enable && gcc --version | head -1
RUN gcc --version | head -1
ENV PATH=/opt/rh/devtoolset-9/root/bin:$PATH
RUN gcc --version | head -1