在 Alpine Linux 容器中安装特定的 GCC/G++ 版本

Install a specific GCC/G++ Version inside an Alpine Linux container

我正在尝试设置一个环境来使用一些旧的 gcc 版本编译一个过时的项目,例如,4.8.2 在 Docker 容器中虚拟化 Alpine Linux.

当我进入容器时,即 docker run -it alpine:latest 我尝试 apk 列出包,但当然我只看到 gcc/g++.

的最新版本

我以为我可以先安装一些依赖项,包括最新版本的编译器,然后删除它们,但是当我 运行 apk build-base 由于

,我不能apk del gcc g++

World updated, but the following packages are not removed due to: gcc: g++ build-base

所以我想我必须手动安装我想要的 gcc/g++。有没有人对如何做到这一点有任何建议?例如,我不想更改为 Ubuntu 并在那里 [1] 解决它,相反我想试一试 Alpine Linux 因此我坚持使用它。

如果您想使用旧版本的 GCC,可以从 GCC 4.8.0 下载源代码 然后从源代码构建 gcc。

您可以将所有 作为 Dockerfile 的一部分提供,然后使用所需的 GCC 构建 alpine 映像。如果你不想创建镜像,你可以简单地按照提到的步骤在alpine容器中构建gcc。

除了从源代码构建之外,您还可以通过 just-containers 在 musl-cross-make Github 存储库中为 Alpine (musl) 获取预构建的 GCC 4.9.4:
https://github.com/just-containers/musl-cross-make/releases/download/v9/gcc-4.9.4-x86_64-linux-musl.tar.xz

额外可用的 GCC musl 版本:5.5.0、6.4.0、7.3.0、9.2.0。