35
votes

Quand GCC-11 apparaîtra dans les référentiels Ubuntu?

GCC 11.1 a finalement été libéré hier. Cependant, maintenant il ne peut être construit qu'à partir de source, donc je me demande quand nous pouvons l'obtenir avec apt ?


3 commentaires

Il a été ajouté par défaut maintenant. A> l'ajout à mon mégatable: askubuntu.com/questions/466651/…


Je vote pour fermer cette question car elle appartient à askubuntu.com


Avance rapide 1 an et nouveau LTS Ubuntu: Jammy est livré avec gcc-11 et g ++ - 11 (voir packages.ubuntu.com/search?keywords=gcc-11 ).


4 Réponses :


6
votes

Nous n'avons actuellement aucune information sur le moment où nous verrons une version APT de GCC 11.1. Ci-dessous, je montre les instructions de construction étape par étape que vous pourrez suivre:

vous pouvez visiter https://gccc.gnu.org/mirrors.html , choisissez le miroir le plus proche de vous, téléchargez la source pour GCC-11.1.0.tar.gz

Ensuite, assurez-vous de Faites installer votre système de construction:

mkdir build
cd build
../configure --enable-multilib && make && sudo make install

Oui, vous avez besoin de GCC pour construire GCC.

Ensuite, déballer le tarball:

cd Downloads # replace with your download location
tar -xzvf gcc-11.1.0.tar.gz
cd gcc-11.1.0

La dernière chose est de la construire:

sudo apt install gcc g++ make bison binutils gcc-multilib

c'est tout! Vous avez maintenant GCC 11.1 installé dans Ubuntu.


3 commentaires

J'ai essayé similaire mais j'ai eu quelques problèmes avec la liaison de libstdc ++. So.6.


J'ai oublié de mentionner que pour l'option - Activer-Multilib , vous devez avoir Multilib. Installez-le avec sudo apt install gcc-multilib . Je l'ai également ajouté dans la réponse.


Cela peut cependant prendre un veeery à construire, selon la machine.



14
votes

Sur Ubuntu 20.04, j'ai suivi les instructions ici:

qui est à:

  1. Mettez à jour les miroirs répertoriés en ajoutant une ligne à votre /etc/apt/sources.list comme ceci:

    sudo add-dapt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute univers principal'

    Choisissez un miroir en fonction de votre emplacement dans la liste. J'ai choisi le noyau Miroir comme je suis en Amérique du Nord.

  2. sudo apt-get update

  3. sudo apt-get install gcc-11

  4. Après cela qui GCC-11 devrait produire un chemin vers le GCC-11. Sur ma machine, c'était:

    which gcc-11
    

    produit: / usr / bin / gcc-11


5 commentaires

Soyez très prudent, n'exécutez pas la «mise à niveau apt-get» ou votre 20.04 devient 21.04, il est plus sûr de supprimer la ligne de sources. libération par accident, ce qui pourrait prendre un certain temps.


Est-ce totalement sûr? Si l'ajout du repo Hirsute rend le GCC-11 à disposition, ne devrions-nous pas nous attendre à ce que cela mette à disposition de nombreux autres packages plus récents qui sont peut-être incompatibles avec 20,04?


Ce n'est pas une réponse sûre car elle pourrait potentiellement créer un gâchis de packages en focale qui sont destinés à être focaux et non à l'Hirsuite. Si vous voulez des versions Hirsuite de Stuff in Focal (par exemple les nains ou libbpf pour construire les derniers noyaux), il est préférable de les reconstruire dans Focal en utilisant GCC et la bibliothèque C dans Focal. Sinon, passer à Hirsuite ou plus tard.


Oui, ce total a détruit ma distribution> D


ATTENTION: Un nombre à deux chiffres de votes de bas (b / c, il conduit à un système de versions mixtes ...)



46
votes
$ sudo update-alternatives --config gcc
There are 6 choices for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-11   1010      auto mode
  1            /usr/bin/gcc-10   1000      manual mode
  2            /usr/bin/gcc-11   1010      manual mode
  3            /usr/bin/gcc-5    40        manual mode
  4            /usr/bin/gcc-7    700       manual mode
  5            /usr/bin/gcc-8    800       manual mode
  6            /usr/bin/gcc-9    900       manual mode

Press <enter> to keep the current choice[*], or type selection number:

15 commentaires

ne fonctionne pas, malheureusement


Fonctionne pour moi, c'est pourquoi je l'ai écrit. Vous devriez peut-être élaborer pour obtenir plus d'aide.


Merci beaucoup, mais je pense qu'il y a une erreur dans votre deuxième ligne de update_alternatives . 100 a à 110, non? Au moins, cela semble le réparer pour moi.


Le nombre est un entier indiquant la priorité. Plus il est élevé, plus la priorité est donnée lors de l'utilisation de la résolution automatique. Exécutez .... $ sudo update-alternatives - Config GCC et vous verrez l'une des colonnes est "priorité". Il peut être n'importe quel nombre tant qu'il n'est pas déjà utilisé. Plus le nombre est élevé, plus la priorité en mode "Auto" est élevée.


J'ai mis à jour la réponse montrant ma configuration de mise à jour-alternatives gérant 6 GCC différents


Le commentaire "ne fonctionne pas" peut être dû à un sudo apt update manquant après avoir ajouté le repo.


Bon ramassage @DrewDormann! J'ai mis à jour la commande ci-dessus.


J'ai mis à jour la ligne d'installation des alternatives vers l'ensemble complet de la suite GCC des commandes principales.


Cela ne fonctionne pas non plus pour moi. Il ajoute le PPA et le répertorie également lors de la mise à jour de la liste des packages, mais il ne trouve aucun package G ++ - 11 NOR GCC-11 à installer. J'utilise Ubuntu 20.10 (groovy), pourrait-ce être la raison?


Comment corriger l'erreur: le CPP alternatif ne peut pas être esclave de GCC: c'est une alternative principale?


Exécuter Sudo Update-Alteratives - Config CPP et voyez s'il est déjà configuré avec différentes options, sinon, supprimez-la à l'aide de Sudo-Update-Alteratives - Rempove-All CPP . Ensuite, si vous aviez déjà exécuté la commande que j'ai publiée pour GCC, vous devrez également supprimer cela pour recommencer, puis re-copier et coller la commande ci-dessus pour définir tous les esclaves, y compris le CPP de manière appropriée.


La suppression de votre ligne @johndpope car l'ajout d'univers Hirsuite peut potentiellement casser beaucoup de packages focaux s'ils sont laissés en place. La chaîne d'outils-R PPA ne le fait pas.


J'obtiens la même erreur que @JoHndpope: Update-Alteratives: Erreur: le CPP alternatif ne peut pas être esclave de GCC: c'est une alternative maître


@Thargy - Voir ma réponse au commentaire de Johndpope. C'est une solution facile.


N'oubliez pas d'ajouter également les pages de l'homme, car leur contenu dépend de la version



4
votes

Les instructions de Casachii ont fonctionné pour moi, avec un gotcha. Si vous rencontrez des problèmes en créant vous-même GCC en utilisant les instructions de Casachii, telles que les erreurs de construction signalant un GMP manquant, MPFR, MPC, etc., faites simplement ce qui suit:

du répertoire GCC (le parent de la "build" répertoire que vous venez de créer), exécutez:

cd build
../configure --enable-multilib && make && sudo make install

puis quand il se termine, exécutez ceci:

./configure

Enfin, revenez dans Votre répertoire de construction comme Casachii instruit et build gcc 11.x

./contrib/download_prerequisites

Cela prendra beaucoup de temps. BTW - J'aurais ajouté cela dans un commentaire à la réponse très utile de Casachii, mais je viens de créer ce compte et apparemment je n'ai même pas les crédits pour même faire un commentaire.


0 commentaires