我的Debian 7 armel嵌入式系统目前有g 4.6,我想升级到g 4.9以使用新的C 11功能 . 我怎么做?
我目前的sources.list内容是:
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
deb http://ftp.us.debian.org/debian wheezy main non-free
deb-src http://ftp.us.debian.org/debian wheezy main non-free
一个简单的apt-get安装包不起作用:
root@arm:~# apt-get install g++-4.9
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package g++-4.9
E: Couldn't find any package by regex 'g++-4.9'
4 回答
根据this blog post,另一个解决方法可能是从"Jessie"安装g 4.9软件包 . 简而言之,在安装新G时,您必须告诉APT使用Jessie repos . 首先让当前的Wheezy保持最新状态:
然后做一个备份:-)并编辑
/etc/apt/sources.list
,以便用"jessie"
替换字符串"wheezy"
:现在更新软件包列表并安装4.9版本的GCC / G:
在此之后恢复到“原始”包列表:
这使得原始GCC,G到位 . 如果您希望使用4.9版本进行编译,则相应地设置
CC
和CXX
env变量,或者明确地将编译器调用为gcc-4.9
或g++-4.9
.可能需要:
packaging-dev
,ubuntu-dev-tools
设置pbuilder
(这使您可以在chroot中构建一个包,而不会使用构建依赖包来污染您的系统)
如果你想为特定的发行版构建(pbuilder在chroot中使用构建系统版本)你可以使用pbuilder-dist [precise / oneric / trusy / etc ...]创建
获取debian源代码
特定的debian修订版是可选的,但是如果你想提取实验/不稳定/测试/稳定版本,你也可以通过将它们作为deb-src添加到sources.list并使用sudo apt-get src从特定的ubuntu发行版中提取
构建包
在下载的文件中有一个.dsc文件,对于最新的gcc,它是gcc-4.9_4.9.0-6.dsc,它是一个包描述符文件 . .orig.tar . [gz / xz]是源码tarball .
创建本地Apt-repository
请注意,您也可以使用从任何地方下载的.debs执行此步骤(跳过步骤1-3)
安装
而不是使用jessie软件包,最好检查一下它是否被反向移植到wheezy . 将其添加到
/etc/apt/sources.list
:deb http://http.debian.net/debian wheezy-backports main
并做一个
apt-get update
然后看看你是否可以安装它 .现在有一个gcc-4.9-backport .