Contexte
Ubuntu Server 20.04 LTS est livré par défaut avec GCC 9. Cependant, pour bénéficier des dernières fonctionnalités du langage C++ et d'améliorations en matière d'optimisation et de conformité aux standards, il peut être utile de passer à une version plus récente du compilateur, comme GCC 11 — celle utilisée par défaut dans Ubuntu 22.04 LTS. Ce guide explique comment mettre à niveau GCC sans remplacer l'installation système par défaut, en utilisant update-alternatives pour gérer les versions.
Étape 1 : Ajout du dépôt PPA Toolchain
Pour accéder aux versions récentes de GCC, ajoutez le PPA officiel du groupe Ubuntu Toolchain :
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
Ce dépôt contient des mises à jour expérimentales ou avancées des outils de compilation pour les anciennes versions d’Ubuntu.
Étape 2 : Mise à jour des sources APT
Synchronisez la liste des paquets disponibles après l’ajout du nouveau dépôt :
sudo apt update
sudo apt upgrade
Cela garantit que les métadonnées des paquets sont à jour et que votre système est cohérent avant l’installation de nouveaux composants.
Étape 3 : Installation de GCC 11 et G++ 11
Installez les binaires du compilateur GCC 11 et de son extension C++ :
sudo apt install gcc-11 g++-11
Une fois terminé, les exécutables gcc-11 et g++-11 seront disponibles dans /usr/bin/.
Étape 4 : Configuraton des alternatives via udpate-alternatives
Afin de définir GCC 11 comme version par défaut tout en conservant la possibilité de revenir à GCC 9, utilisez update-alternatives. Cette méthode permet de gérer plusieurs versions du même outil de manière propre.
Tout d’abord, vérifiez que les binaires existent :
ls /usr/bin/gcc-* /usr/bin/g++-*
Ensuite, configurez les priorités :
# Version par défaut (GCC 9) - priorité basse
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 10
# Nouvelle version (GCC 11) - priorité élevée
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 20
Le dernier argument numérique correspond au « score de priorité ». La version avec le score le plus élevé sera sélectionnée automatiquement comme alternative principale.
Étape 5 : Vérification de la version active
Confirmez que le changement a bien pris effet :
gcc -v
La sortie devrait afficher quelque chose comme :
Thread model: posix
gcc version 11.1.0 (Ubuntu 11.1.0-1ubuntu1~20.04)
Cela indique que GCC 11 est désormais utilisé par défaut lorsqu’on appelle gcc ou g++ dans le terminal.
Remarques finales
Si vous travaillez sur un système plus récent ou souhaitez installer une version supérieure (comme GCC 12 ou 13), consultez directement la page du PPA : https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test pour vérifier la disponibilité selon votre version d’Ubuntu.