我想开始玩一些新的C++11特性,它看起来最好的支持是 gcc 4.8,而 Squeeze 4.4.5.
但是,我不想在当前设置中导致任何"损坏"。 最好的办法是什么版本的gccside-by-side运行? 我最关心的是大量的依赖,把它们全部放到我当前的系统中可能会使它不稳定。
是否有人做到了这一点,以及涉及的步骤是什么?
如果失败,我可能会创建一个VM并运行一个"不稳定"debian,但它是一个less-than-ideal解决方案。
如果你从源代码安装gcc只要确保你不要安装 /usr
, 不会什么都搞得一团糟。 如果你将它作为你自己的用户而不是 root
安装,那么就有可能搞乱系统。
查看 http://gcc.gnu.org/wiki/InstallingGCC 以获得almost-idiot-proof最小配置。
我有不同版本的版本作为我的用户,并安装在 ~/gcc/4.X
中用于各种版本。
唯一使用设置,需要注意的是,新版本的共享库没有动态链接器的默认搜索路径,所以你需要使用 LD_LIBRARY_PATH
或其他解决方案,以确保可执行文件找到库从 4.8,看到 libstdc++ FAQ和链接的页面手动
我使用一个包装脚本调用 g++11
,它简单地调用新版本的GCC,并通过 -std=gnu++11
传递一个标志,告诉链接器设置可执行文件中 4.8库的路径:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g"$@"
我有同样的问题,不想完全升级到测试。
Jessie ( 测试) 现在包含 g++-4.8,它与C++11兼容。
我按以下方式使用 apt-pinning:
一个jessie的源被添加到/etc/apt/sources. 列表:
deb http://ftp.uk.debian.org/debian/jessie main non-free contrib
/etc/apt/preferences 被编辑为:
Package: *
Pin: release n=wheezy
Pin-Priority: 900
Package: gcc*
Pin: release n=jessie
Pin-Priority: 910
然后,
$ sudo aptitude update
$ sudo aptitude install gcc/jessie
此时我选择了第二个选项来完全解析依赖关系。
你是否尝试过 chroot 来安装新的Debian风格?
你可以在没有恐惧的情况下玩你的工作系统。
安装支持你的gcc版本的Debian风格。
手动安装gcc版本而不影响你的工作系统。 http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot