如何在 debian jessie 8.1 上安装 GCC 5

mlu*_*hra 22 debian gcc c++ g++

我尝试了许多解决方案来在 debian 服务器上为我的 gcc 编译器安装更新。他们都没有工作。我需要编译器更新才能使用 c++11 的新功能,因为这提供了稳定的 libcxx11 ABI,以及对 C++11 的稳定支持(请参阅此处)。专门获取版本“GLIBCXX_3.4.21”,该版本未包含在我当前的编译器 gcc 版本 4.9.2(Debian 4.9.2-10)中。

一些解决方案的指针会有所帮助。提前致谢。

一些与我已经尝试过的问题相关的论坛链接:

1 2 3(不完全相关的解决方案适用于 ubuntu,但我在 debian 的 ftp 服务器中找不到 gcc-5)

lle*_*ekn 15

我需要在 debian jessie 上安装 GCC 5+,并且可用于 debian 测试(至少在 jun-16 上),您可以使用 apt-pinning 安装可用的软件包(请参阅https://wiki.debian.org/AptPreferences) .

要使用 apt-pinning 在 debian jessie 上进行测试安装 GCC 5+:

  1. 通过在/etc/apt/sources.list.d包含该行的目录中创建一个文件,将 debian testing repo 添加到您的 apt 源

    deb http://ftp.us.debian.org/debian testing main contrib non-free

  2. 通过创建/etc/apt/preferences.d包含以下内容的文件,指示 debian 对某些软件包使用测试源:

    Package: *
    Pin: release a=testing
    Pin-Priority: 100
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新apt数据库: sudo apt-get update

  4. 从测试安装 gcc: sudo apt-get install -t testing gcc

    请注意,使用-t testing您告诉 apt-get 从之前配置的测试源安装 gcc。

我强烈建议在再次编译源代码之前清理所有编译并重新编译任何依赖项。

玩得开心!

  • 我实际上尝试了它并取得了不错的结果:我可以成功编译我正在构建的内容并且系统继续工作没有问题。尽管如此,您可能是对的:更改 GCC 版本可能会破坏其他包的编译(即在使用 ` 安装包时编译源代码pip`),但我认为这个过程是侵入性最小的,因为 `apt` 会跟踪哪些包依赖于 GCC 并会根据需要安装兼容的版本(据我所知)。 (2认同)
  • 步骤 2 的注意事项:/etc/apt/preferences.d/ 中的文件不应包含点“.” 在文件名中,或以“.pref”结尾。否则,该文件将被忽略。对值 100 的含义以及为什么选择它的解释将不胜感激。 (2认同)

小智 6

截至 2017-02-19,gcc-5已从测试中移除

https://tracker.debian.org/pkg/gcc-5

你可以apt-get install gcc-5,如果你先执行该行根:

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" > /etc/apt/sources.list.d/unstable.list
Run Code Online (Sandbox Code Playgroud)

然后,您可能希望/etc/apt/preferences.d根据 llekn 的回答更改该源的优先级。


小智 6

要将前面的 2 个答案合并为一个有效的答案:

echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" >> /etc/apt/sources.list.d/unstable.list
apt-get update
apt-get install -t unstable gcc-5
Run Code Online (Sandbox Code Playgroud)

但!!!当您从不稳定安装软件包时,请自行承担风险。/etc/apt/sources.list.d/unstable.list安装软件包后,您可能还想删除。

如果可能,请在 Docker 下安装,以免弄乱您的操作系统。你的旅费可能会改变。