在Debian上安装gcc 4.8
我想开始使用一些较新的C++ 11功能,看来最好的支持是使用gcc 4.8,而Squeeze使用4.4.5。在Debian上安装gcc 4.8
但是,我不想对我当前的设置造成任何“损害”。 两种版本的并行运行的最佳方式是什么?我主要关注大量的依赖关系,并将它们全部引入到我当前的系统中可能会使其不稳定。
有没有人设法做到这一点,涉及哪些步骤?
如果不这样做,我可能只是创建一个虚拟机,然后运行一个“不稳定的”Debian,但这是一个不太理想的解决方案。
如果你从源代码安装GCC只是确保你不将它安装到/usr
,它不会弄乱任何东西。如果你将它安装成你自己的用户,而不是root
,那么就没有可能搞乱系统了。
请参阅http://gcc.gnu.org/wiki/InstallingGCC几乎防白痴的最小配置。
我有作为我的用户构建的各种版本,并安装在各种X的~/gcc/4.X
。
需要注意的是,新版本的共享库不在动态链接器的默认搜索路径中,因此您需要使用LD_LIBRARY_PATH
或其他一些解决方案来确保可执行文件找到从4.8库,看到libstdc++ FAQ并将其链接到在manual
我使用包装脚本调用g++11
它只是与-std=gnu++11
调用GCC的新版本,并传递标志的链接,告诉它设置路径的页面到可执行文件中的4.8库:
$HOME/gcc/4.8/bin/g++ -Wl,-rpath,$HOME/gcc/4.8/lib64 -std=gnu++11 -Wall -Wextra -g "[email protected]"
快速的:
只要升级到测试,它是坚如磐石,为您提供多个并发版本的GCC。对于Ubuntu,类似于12.10,我有gcc/g ++ 4.4,4.5,4.6和4.7的并行。
尝试使用Debian的backports归档文件,它可能有一个gcc 4.8的端口。
使用虚拟化:我更喜欢libvirt/kvm,它在Linux上非常轻巧,因为它是基于内核的。出于这个原因,我的amd64服务器有两个其他的32位安装。
不是一个真正的SO问题...
从FAQ:“程序员常用的软件工具”。如果gcc不符合该描述,我会吃我的帽子:-) – paxdiablo 2013-05-01 01:53:51
SO是编程,我看到主持人黑手党将大量类似的问题提交给超级用户。就我个人而言,我喜欢这里的问题,并认为SE网站变得太细。只是说我或多或少地期待这个关闭/移动。 – 2013-05-01 01:55:46
Debian有名称GCC-4.8下的包(或C++编译器,G ++ - 4.8)。只要你不把它重命名为g ++,安装这些软件包不会混淆你的操作系统。该软件包虽然列为实验。
包装上的信息是here。
虽然他跑稳了。 – 2013-05-01 01:53:14
如果他愿意,他可以配置他的系统来查找非稳定的包。看看[这个问题在ServerFault](http://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing)(阅读接受的答案)。 – JKor 2013-05-01 01:57:46
当然 - 我知道这是因为自1995年以来我一直是Debian开发人员/维护人员。这仅仅是因为稳定和测试/不稳定之间的差距可能会变得很大,所以这不是因为模糊不清。使用测试作为基础更容易,这是我多年来一直在做的事情。但是YMMV和他也是。 – 2013-05-01 02:02:14
你试过chroot安装更新Debian的味道?
你可以毫不畏惧地玩弄你的工作系统。
安装支持您所需的gcc版本的Debian风格。
手动安装gcc版本,不会影响您的工作系统。 http://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Chroot
我有同样的问题,并不想完全升级到测试。
Jessie(testing)现在包含符合C++ 11的g ++ - 4.8。
我用apt钉扎以下列方式:
加入甲源杰西在/etc/apt/sources.list:
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
在这一点上,我选择了第二个呈现的选项来完全解决依赖关系。
根据'man apt_preferences',它应该是'n = jessie',distro codename是'n ='。此外,它不适用于'a'。 – 2014-11-07 22:22:11
这些指令通过删除现有的gcc 4.7安装和不安装更新的gcc来破解Debian 7.8.0(wheezy)。使用apt-get来尝试重新安装原始的gcc 4.7以恢复到工作的开发者状态是不可能的(或者它不工作)。 – 2015-02-06 00:44:13
我发现特别有用的包装脚本 – 2014-04-04 12:52:43