繁体   English   中英

如何在 debian 上安装 gcc-9:最新的 docker

[英]How to install gcc-9 on debian:latest docker

为了使用 C++17 包括<filesystem>我需要gcc-9 package 在我的 debian Z045E6053C15D8B DA 中。

默认情况下debian:latest (又名 10 或 buster)将从常规发行版 repo 安装 gcc 8.3.0

是否有任何 PPA、测试仓库等,我可以在其中轻松安装gcc-9 (或更高版本)package(即不是从源代码构建它)

谢谢 !

注意:需要 gcc-9 才能有良好的 C++17 <filesystem>支持。
GCC 9 发行说明:

现在使用 in 中的类型和函数不需要与 -lstdc++fs 链接。

来源: https://gcc.gnu.org/gcc-9/changes.html

注意 2:CMake 3.16* 不支持任何 cxx_filesystem 编译器功能 AFAIK。

注意3:您可以在此处找到日志: https://github.com/Mizux/KalistoUnpacker/runs/642516660?check_suite_focus=true

debian:10的全新开始:

echo 'deb http://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/testing.list
apt update
cat <<EOF > /etc/apt/preferences.d/pin
Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650
EOF

apt install -qq -y -t testing build-essential

产量:

# g++ -v
gcc version 9.3.0 (Debian 9.3.0-11) 

在我的 Dockerfile 中,我做了:

FROM debian:latest AS env
...
RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
RUN apt update -y
RUN apt install -y gcc

注意:我在安装build-essential之后添加了这些行,所以从技术上讲,容器安装了“默认”gcc 然后它由测试仓库中的那个更新...

注意2:使用RUN gcc --version我有gcc (Debian 9.3.0-11) 9.3.0 :D

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM