Docker 如何安装gcc/g++;9世纪7号码头工人(世纪7号)

Docker 如何安装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

为了使用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发布说明:

使用
中的类型和函数不需要立即链接到
-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
因此,你必须:

  • 在bashrc中添加源代码
    注意:在Centos上是
    /etc/bashrc
    ,而在ubuntu上是
    /etc/bash.bashrc

  • 将docker默认shell更新为bash,并使用
    --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