web-dev-qa-db-fra.com

Comment installer g ++ 4.9 sur Debian Wheezy armel?

Mon système intégré Debian 7 armel utilise actuellement g ++ 4.6 et j'aimerais passer à g ++ 4.9 pour utiliser les nouvelles fonctionnalités de C++ 11. Comment je fais ça?

Le contenu actuel de mes sources.list est:

 
 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 principal non-libre 
 deb-src http://ftp.us.debian.org/debian Wheezy principal non-libre 
 

Une simple installation par apt-get du paquet ne fonctionne pas:

 
 root @ arm: ~ # apt-get install g ++ - 4.9 
 Lire les listes de paquets ... Fait 
 Construire un arbre de dépendance 
 État de lecture information ... Fait 
 E: Impossible de localiser le paquet g ++ - 4.9 
 E: Impossible de trouver un paquet par expression rationnelle 'g ++ - 4.9' 
 
11
user43995

Une autre solution consiste à installer les packages g ++ 4.9 à partir de "Jessie", selon cet article de blog . En bref, vous devez dire à APT d’utiliser le dépôt Jessie lors de l’installation du nouveau G ++. Commencez par mettre à jour le Wheezy actuel:

Sudo apt-get update
Sudo apt-get upgrade

Faites ensuite une sauvegarde :-) et éditez /etc/apt/sources.list pour remplacer la chaîne "wheezy" par "jessie":

Sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
Sudo vi /etc/apt/sources.list

Maintenant, mettez à jour la liste des paquets et installez la version 4.9 de GCC/G ++:

Sudo apt-get update
Sudo apt-get install gcc-4.9 g++-4.9

Après cela, revenez à la liste de paquets "d'origine":

Sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
Sudo apt-get update

Cela laisse le GCC d'origine, G ++, en place. Si vous souhaitez compiler avec la version 4.9, définissez les variables CC et CXX env en conséquence ou appelez les compilateurs en tant que gcc-4.9 ou g++-4.9 de manière explicite.

15
Laryx Decidua

Probablement nécessaire: packaging-dev, ubuntu-dev-tools 

Mettre en place un constructeur

(cela vous permet de construire un paquet dans un chroot sans polluer votre système avec des paquets dépendants de la construction)

Sudo pbuilder create

si vous voulez compiler une distribution spécifique (pbuilder utilise la version du système de compilation dans un chroot), vous pouvez utiliser pbuilder-dist [precise/oneric/trusy/etc ...] create

Obtenir le code source Debian

pull-debian-source gcc-4.9 [4.9.0-6] 

une révision debian spécifique est facultative, mais peut être utile si vous souhaitez extraire des révisions expérimentales/unstable/testing/stable , vous pouvez également extraire des distributions spécifiques à ubuntu en les ajoutant à sources.list en tant que deb-src et en utilisant Sudo apt-get src

Paquet de construction

Sudo pbuilder build gcc-4.9_4.9.0-6.dsc

Dans les fichiers téléchargés, il y a un fichier .dsc. Pour le dernier gcc, c’est gcc-4.9_4.9.0-6.dsc, qui est un fichier descripteur de paquet. .orig.tar. [gz/xz] est l'archive source.

Créer un référentiel Apt local

mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /path/to/repo
apt-ftp archive packages . > Packages
Sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list`

Notez que vous pouvez également effectuer cette étape avec les fichiers .deb téléchargés de n'importe où (ignorez les étapes 1 à 3).

Installer

apt-get update; apt-get install gcc-4.9 g++-4.9
5
user4032676

Au lieu d'utiliser les packages Jessie, il serait préférable de vérifier si le portage a été rétrocédé à Wheezy. Ajoutez ceci à votre /etc/apt/sources.list:

deb http://http.debian.net/debian wheezy-backports main

et faire un apt-get update et voir si vous pouvez l'installer alors.

1
DrHyde

Il y a un gcc-4.9-backport maintenant.

Sudo apt-get update && Sudo apt-get install gcc-4.9-backport
0
xqliang