Obtenir + installer gcc / g ++ 4.9 sur Ubuntu? [dupliquer]

78

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.

    
posée A T 02.03.2014 - 04:05
la source

7 réponses

107

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.

    
réponse donnée Vladimir Rutsky 28.04.2014 - 10:14
la source
42

Intro

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.

Basic-How-to-Build-a-deb

(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)

  1. 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 ,
    • si vous voulez construire pour une distribution spécifique, (pbuilder utilise la version du système de génération dans un chroot), vous pouvez utiliser pbuilder-dist [precise/oneric/trusy/etc...] create
  2. Obtenir la source Debian

    • La révision debian spécifique à 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
    • vous pouvez également extraire des distributions ubuntu spécifiques en les ajoutant à sources.list en tant que deb-src et en utilisant sudo apt-get src
  3. Build Package

    • 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 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.
  4. Créer un référentiel Apt local

    • mkdir /convenient/place/for/repo
    • cp /var/cache/pbuilder/result/* /path/to/repo
    • (en supposant que vous soyez dans repo dir) apt-ftp archive packages . > Packages
    • (une des nombreuses façons de faire cela) 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 .debs téléchargés de n'importe où (ignorez les étapes 1 à 3)
  5. Installer

    • apt-get update; apt-get install gcc-4.9 g++-4.9

Trucs supplémentaires

Dépendances de backporting faciles

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.

La solution VM

Pour ce faire, utilisez une image VM ou un conteneur LXC pour emprisonner ce mess.

Application de correctifs personnalisés

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)

  1. bzr
  2. (en supposant que sudo apt-get install bzr-builddeb est extrait et que .orig.tar.gz est extrait et placé
    • .debian.tar.gz
    • bzr init
    • bzr add
  3. (FACULTATIF)
    • modifie bzr commit
    • ajouter un correctif à 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/
  4. 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)
  5. 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

    
réponse donnée crasic 12.06.2014 - 18:03
la source
26

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

ou

vous pouvez mettre à jour en utilisant 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++

ou

vous pouvez simplement compiler avec
/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

    
réponse donnée hwez 05.08.2014 - 10:27
la source
8

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!]

    
réponse donnée A T 02.03.2014 - 04:05
la source
2

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.

    
réponse donnée RJVB 02.11.2014 - 20:09
la source
2

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
    
réponse donnée mark.kedzierski 13.04.2015 - 18:51
la source
2

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

    
réponse donnée Swap L 25.08.2015 - 07:56
la source

Lire d'autres questions sur les étiquettes