Comment installer la dernière version de gcc et g ++?
J'utilise diverses fonctionnalités C++ 11 et C++ 1y; c'est pourquoi j'ai besoin de ça.
Vous pouvez installer une version proche de GCC en amont à partir de Ubuntu Toolchain PPA: https://wiki.ubuntu.com/ToolChain#PPA_packages
Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install g++-4.9
Testé sur Ubuntu 14.04.
apprend à un homme à pêcher, etc., etc.
Comment construire le paquet source et le servir depuis un référentiel local d’une manière adaptée à apt. Cela fonctionnera sur toutes les distributions à condition que les dépendances puissent être satisfaites/Cette méthode ne vous oblige pas à installer des build-deps pour chaque paquet et à polluer votre machine avec des paquets superflus, cela vous permettra de suivre l'évolution des paquets à mesure qu'ils sont mis à jour dans debian experimental . Cette opération ne prend que quelques minutes une fois, puis peut être réutilisée pour reconstruire n’importe quel paquet dont vous avez besoin sans compter sur d’autres personnes pour emballer ppa pour vous ou télécharger un tas de fichiers .debs différents.
L'avantage de compiler ou d'extraire des fichiers .debs bruts à partir de Debian est que cela construira des paquetages contre les paquetages de votre distribution dont la version/révision peut différer de ce qui est utilisé comme dépendances de construction pour la distribution debian. C'est plus ou moins le processus de rétroportage des packages. Vous pouvez également utiliser n’importe quelle distribution ubuntu pour construire des packages ciblés sur n’importe quelle autre distribution (la cible dans ce cas-ci signifie une construction par rapport aux packages du référentiel standard) sans aucun problème.
(pas pour le téléchargement de ppa - cela a des exigences bureaucratiques du tableau de bord
Probablement nécessaire: packaging-dev
(extrait build-essential pubilder ubuntu-dev-tools
parmi d'autres)
Configurer pbuilder (cela vous permet de construire un paquet dans un chroot sans polluer votre système avec des paquets de dépendance de construction)
Sudo pbuilder create
,pbuilder-dist [precise/oneric/trusy/etc...] create
Obtenir le code source Debian
pull-debian-source gcc-4.9 [4.9.0-6]
est facultative, mais peut s'avérer utile si vous souhaitez extraire des révisions expérimentales/unstable/testing/stables.Sudo apt-get src
Paquet de construction
Sudo pbuilder build gcc-4.9_4.9.0-6.dsc
.dsc
, pour le plus récent gcc, il s'agit de 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
apt-ftp archive packages . > Packages
Sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list
Installer
apt-get update; apt-get install gcc-4.9 g++-4.9
Utilisation de packages auto-compilés pour satisfaire les dépendances lors de la construction de packages. (Je l'ai configuré avec les dossiers ~/pbuilder
~/pbuilder/precise_local
(dépôt du paquet local pour préciser) et ~/pbuilder/precise_hooks
(pour les scripts de raccordement))
Ajoutez ce qui suit à votre ~/.pbuilderrc
OTHERMIRROR="deb [trusted=yes] file:///home/user/pbuilder/precise_local ./"
BINDMOUNTS="/home/user/pbuilder/precise_local"
HOOKDIR="/home/user/pbuilder/precise_hooks"
EXTRAPACKAGES="apt-utils"
dans precise_hooks
créer un fichier D05local
(à la manière unix/linux typique, le préfixe D
indique quand le script est accroché 05
est un ordre de nom auto-imposé et local
est juste le nom, si vous n’avez qu’un crochet, il n’a pas d'importance de savoir comment il s'appelle tant que D
est le préfixe
le script est un one-line
(cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages)
Maintenant, tous les paquets placés dans precise_local
satisferont les dépendances de compilation. Ceci est extrêmement utile pour construire une arborescence de dépendances localement lorsque les paquets portant des dépendances ont également une dépendance.
Pour le faire de manière encore plus propre, utilisez une image VM ou un conteneur LXC pour emprisonner ce gâchis.
vous pouvez appliquer des correctifs personnalisés dans la plupart des paquets Debian à l'aide de quilt
; les correctifs de quilt peuvent utiliser des différences provenant de la plupart des VCS (voir: avec quilt )
Il y a une étape supplémentaire, vous devez reconstruire les .dsc
et .debian.tar.gz
. La manière la plus propre que je connaisse est bzr-builddeb
, elle a le taux de réussite le plus élevé à mon humble avis (comparé à git-build-package et à d'autres scripts d'aide) et est beaucoup plus propre que d'appeler debuild
directement (bzr
= VCS de canonical)
Sudo apt-get install bzr-builddeb
.orig.tar.gz
est extrait et que .debian.tar.gz
est extrait et y place bzr init
bzr add
bzr commit
debian/changelog
debian/patches/
et modifiez debian/patches/series
(quilt a également un utilitaire pour ajouter des correctifs ou pour modifier à la volée, voir la documentation)bzr add debian/
bzr commit
bzr builddeb -- -S -us -uc
Ceci reconstruit le fichier source et le laisse non signé (la signature gpg est requise pour le téléchargement PPA/distribution, mais pas pour les pensions privées locales)cd ../build-area/
Continuez à partir de l'étape 3 ci-dessus.Les étapes 1 à 4 correspondent à peu près à ce que vous devez télécharger dans un PPA (elles ne prennent pas de fichiers binaires), mais vous avez besoin de quelques étapes pour satisfaire la bureaucratie du tableau de bord (this answer fournit une explication, - this on a des liens)
Debian propose un paquet: https://packages.debian.org/jessie/gcc-4.9 - Pour éviter de causer des problèmes avec la compatibilité Ubuntu/Debian; ne l'ajoutez pas à votre sources.list.
Au lieu de cela, téléchargez simplement tous ces:
binutils_2.25-5_AMD64.deb
cpp_4.9.2-2_AMD64.deb
g++_4.9.2-2_AMD64.deb
gcc_4.9.2-2_AMD64.deb
gcc-4.9-base_4.9.2-10_AMD64.deb
libasan1_4.9.2-10_AMD64.deb
libatomic1_4.9.2-10_AMD64.deb
libcilkrts5_4.9.2-10_AMD64.deb
libgcc1_4.9.2-10_AMD64.deb
libgcc-4.9-dev_4.9.2-10_AMD64.deb
libgomp1_4.9.2-10_AMD64.deb
libitm1_4.9.2-10_AMD64.deb
liblsan0_4.9.2-10_AMD64.deb
libmpfr4_3.1.2-2_AMD64.deb
libquadmath0_4.9.2-10_AMD64.deb
libstdc++-4.9-dev_4.9.2-10_AMD64.deb
libstdc++6
libtsan0_4.9.2-10_AMD64.deb
libubsan0_4.9.2-10_AMD64.deb
Depuis les serveurs de Debian, par exemple:
http://ftp.us.debian.org/debian/pool/main/b/binutils/binutils_2.25-5_AMD64.deb
Ensuite, installez-les, par exemple: $ for package in *.deb; do Sudo dpkg --install "$package"; done
[Plus facile de lancer cette boucle bash plusieurs fois jusqu'à ce que toutes les dépendances soient couvertes que de rappeler l'ordre dans lequel vous les avez téléchargées!]
Actuellement (20141102), l'ajout du PPA et l'appel de la commande ci-dessus apt-get install gcc-4.9 g++-4.9 cpp-4.9
afficheront un ensemble de packages suggérés. Installez-les tous sauf pour libvtv0-dbg (qui a un conflit de dépendance):
apt-get install gcc-4.9 g++-4.9 cpp-4.9 gcc-4.9-locales g++-4.9-multilib libstdc++6-4.9-dbg gcc-4.9-multilib libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan1-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libquadmath0-dbg lib32stdc++6-4.9-dbg libx32stdc++6-4.9-dbg
(ignorez les paquets -dbg s’ils ne vous intéressent pas), puis faites un apt-get dist-upgrade --auto-remove
. Cette dernière étape remplacera fondamentalement votre gcc-4.8 par gcc-4.9 (sans toutefois désinstaller l'ancienne version), et extraira simultanément les compilateurs fortran mis à jour.
Je devais forcer la version du paquetage gcc-4.9-base pour dépasser le message d'erreur que vous avez posté. Puis l'installation a fonctionné
Sudo apt-get install gcc-4.9-base=4.9.2-0ubuntu1~14.04
Maintenant, vous pouvez faire le régulier
Sudo apt-get install gcc-4.9
Installez GCC GNU 4.9
Sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Sudo apt-get update
Sudo apt-get install gcc-4.9
Supprime la version précédente de gcc de la liste des applications par défaut (si elle existe déjà)
Sudo update-alternatives --remove-all gcc
Faites de GCC 4.9 le compilateur par défaut sur le système
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
Sudo update-alternatives --config gcc
La dernière mise à jour GCC 4.9.1 est une version de correction de bogues de la branche GCC 4.9, qui contient des corrections importantes pour les régressions et les bogues graves dans GCC 4.9.0, avec plus de 88 bogues corrigés depuis la version précédente. De plus, la version 4.9.1 de GCC prend en charge OpenMP 4.0 également en Fortran, plutôt qu'en C et C++.
Remarque: vérifié sur ubuntu 14.04 LTS