Comment installer la dernière version de gcc et g ++?
J'utilise une variété de fonctionnalités C ++ 11 et C ++ 1y; c'est pourquoi j'ai besoin de ça.
Vous pouvez installer près de la version en amont de GCC depuis Ubuntu Toolchain PPA: lien
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 créer le paquet source et le diffuser depuis un référentiel local de manière appropriée. Cela fonctionnera sur n'importe quelle distribution à condition que les dépendances puissent être satisfaites / Cette méthode n'exige pas que vous installiez build-deps pour chaque paquet et que vous polluiez votre machine avec des paquets superflus, cela vous permettra de suivre les paquets . Cela prend juste quelques minutes pour le faire une fois, et peut ensuite être réutilisé pour reconstruire n'importe quel paquet dont vous avez besoin sans compter sur d'autres personnes pour empaqueter ppa pour vous ou télécharger un tas de différents .debs
L’avantage de construire vs tirer des fichiers .debs à partir de debian est que cela va créer des paquets contre les paquets de votre distribution, dont la version / révision peut différer de celle utilisée pour la distribution Debian. C'est plus ou moins le processus de backporting des packages. Vous pouvez également utiliser n'importe quelle distribution Ubuntu pour créer des packages ciblés sur toute autre distribution (dans ce cas, la cible signifie générer sur les packages de référentiel standard) sans problème.
(pas pour le téléchargement ppa - il a des exigences beurocratiques à partir du tableau de bord
Probablement requis: packaging-dev
(tire build-essential pubilder ubuntu-dev-tools
parmi les autres)
Configurez pbuilder (cela vous permet de créer un paquet dans un chroot sans polluer votre système avec des paquets de dépendances de build)
sudo pbuilder create
, pbuilder-dist [precise/oneric/trusy/etc...] create
Obtenir la source Debian
pull-debian-source gcc-4.9 [4.9.0-6]
est facultative, mais peut être utile si vous souhaitez extraire des révisions expérimentales / instables / testing / stables sudo apt-get src
Build Package
sudo pbuilder build gcc-4.9_4.9.0-6.dsc
.dsc
, pour le plus récent, gcc, c'est gcc-4.9_4.9.0-6.dsc
, qui est un fichier descripteur de package. .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 création de packages. (Je l'ai configuré avec les dossiers ~/pbuilder
~/pbuilder/precise_local
(repo de paquet local pour précis) et ~/pbuilder/precise_hooks
(pour les scripts de hook))
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ée un fichier D05local
(en mode unix / linux typique, le préfixe D
indique que le script est accroché 05
est un ordre de nom auto-imposé et local
est juste le nom, si vous ne disposez que d'un seul crochet, il n'est pas important de savoir quel est son nom tant que D
est le préfixe
le script est un one-liner
(cd /home/user/pbuilder/precise_local ; apt-ftparchive packages . > Packages)
Maintenant, tous les paquets placés dans precise_local
satisferont à build-volume. Ceci est extrêmement utile pour construire une arborescence de dépendances localement lors du portage de paquets qui ont des dépendances qui ont également besoin de backport.
Pour ce faire, utilisez une image VM ou un conteneur LXC pour emprisonner ce mess.
vous pouvez appliquer des correctifs personnalisés dans la plupart des paquets debian en utilisant quilt
, les correctifs de quilt peuvent utiliser des différences de la plupart des VCS (voir: utiliser quilt )
Il y a une étape supplémentaire, vous devez reconstruire .dsc
et .debian.tar.gz
. Je sais que la méthode la plus propre est bzr-builddeb
elle a le meilleur taux de réussite IMHO (par rapport à git-build-package et autres scripts d'aide) et est beaucoup plus propre que d'appeler directement debuild
(% VCS de bazaar canonical)
bzr
sudo apt-get install bzr-builddeb
est extrait et que .orig.tar.gz
est extrait et placé
.debian.tar.gz
bzr init
bzr add
bzr commit
debian/changelog
et modifier debian/patches/
(quilt a aussi un utilitaire pour ajouter des correctifs ou pour que vous puissiez le modifier à la volée, voir la documentation) debian/patches/series
bzr add debian/
bzr commit
Cela reconstruit le fichier source et le laisse non signé (signature gpg requise pour le téléchargement PPA / distro, mais pas pour les dépôts privés locaux) bzr builddeb -- -S -us -uc
Continuer à partir de l'étape 3 ci-dessus. Les étapes 1 à 4 sont à peu près ce que vous devez télécharger sur un PPA (elles ne prennent pas de fichiers binaires), mais vous avez besoin de quelques étapes pour satisfaire la bureaucratie du tableau de bord ( answer fournit une explication, cet un a des liens
installer
sudo su -
apt-get install build-essential
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install gcc-4.9 g++-4.9 cpp-4.9
Après cela, si vous vérifiez la version de gcc, vous trouverez l'ancienne version
gcc --version
pour que nous puissions le réparer avec un symbole simple
cd /usr/bin
rm gcc g++ cpp
ln -s gcc-4.9 gcc
ln -s g++-4.9 g++
ln -s cpp-4.9 cpp
update-alternatives
// En fait, j'ai essayé le symbolique & amp; Je sais que cela fonctionnera mais vous pouvez utiliser le symbole pour l'obtenir sans problèmes // corrige-moi si je me trompe
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 40 --slave /usr/bin/gcc gcc /usr/bin/gcc-4.9
update-alternatives --config gcc
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 40 --slave /usr/bin/cpp cpp /usr/bin/cpp-4.9
update-alternatives --config cpp
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
update-alternatives --config g++
/usr/bin/gcc4.9 filename.c
gcc-4.9 est comme le gcc-4.8 "ubuntu 14.04 gcc" ce n’est pas une grande déférence
Debian propose un paquetage: lien - pour éviter de causer des problèmes avec la compatibilité Ubuntu / Debian; ne l'ajoutez pas à vos sources.list.
Au lieu de cela, téléchargez simplement tous ces éléments:
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
Sur les serveurs de Debian, par exemple:
lien
Puis installez-les, par exemple: $ for package in *.deb; do sudo dpkg --install "$package"; done
[Plus facile de simplement exécuter cette boucle bash plusieurs fois jusqu'à ce que toutes les dépendances soient couvertes que de se rappeler de l'ordre dans lequel vous les avez téléchargées!]
Actuellement (20141102), l'ajout de la PPA et l'invocation de la commande ci-dessus apt-get install gcc-4.9 g++-4.9 cpp-4.9
permet d'imprimer un grand nombre 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 avec gcc-4.9 (mais ne désinstallera pas l'ancienne version), et récupérera simultanément les compilateurs fortran à jour.
J'ai dû forcer la version du paquetage gcc-4.9-base pour passer le message d'erreur que vous avez posté. Ensuite, 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
Installer GCC GNU 4.9
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
Supprimez 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 du 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 bogue de la branche GCC 4.9 contenant des correctifs importants 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. En plus de cela, la version GCC 4.9.1 supporte OpenMP 4.0 également dans Fortran, plutôt que juste en C et C ++
Remarque: Vérifié sur Ubuntu 14.04 LTS
Lire d'autres questions sur les étiquettes package-management gcc g++