Catnoo
Notes de paramétrage de postes de travail, et autres vicissitudes ...

Accueil > Linux - Ubuntu > scripts intéressants > ubuntu - script choix version gcc g++

ubuntu - script choix version gcc g++

samedi 22 avril 2023, par Lucien-Henry

Ces derniers temps, Ubuntu est livré avec 2 versions de compilateurs. Par défaut, la version la plus stable est installée de façon opérationnelle, mais aussi un bout de la version plus récente. Autant tout migrer vers la version plus récente.
On ne peut pas supprimer la version stable, il faut donc s’arranger pour que ce soit toujours la version récente du compilateur GCC / G++ qui soit employée.

Après une migration de version, simplement adapter les versions source et cible dans le script suivant /opt/gcc_change-12v13.sh

#!/bin/bash
# LHO - 20/04/2023
# licence : GPL
sSource="12"
sCible="13"


cd /usr/bin
apt-get install gcc-$sCible gcc-$sCible-base libgcc-$sCible-dev gpp

echo "### remplacement ###"

#gcc
#gcc-$sCible -> x86_64-linux-gnu-gcc-$sCible
ls -lart /usr/bin/gcc
ls -lart /usr/bin/gcc-$sSource
ls -lart /usr/bin/gcc-$sCible
rm /usr/bin/gcc ; ln -s /usr/bin/gcc-$sCible /usr/bin/gcc ; ls -lart /usr/bin/gcc
#/usr/bin/x86_64-linux-gnu-gcc -> gcc-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcc
ls -lart /usr/bin/x86_64-linux-gnu-gcc-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcc-$sCible
rm /usr/bin/x86_64-linux-gnu-gcc ; ln -s /usr/bin/x86_64-linux-gnu-gcc-$sCible /usr/bin/x86_64-linux-gnu-gcc ; ls -lart /usr/bin/x86_64-linux-gnu-gcc

#gcc-ar
#gcc-ar-$sCible -> x86_64-linux-gnu-gcc-ar-$sCible
ls -lart /usr/bin/gcc-ar
ls -lart /usr/bin/gcc-ar-$sSource
ls -lart /usr/bin/gcc-ar-$sCible
rm /usr/bin/gcc-ar ; ln -s /usr/bin/gcc-ar-$sCible /usr/bin/gcc-ar ; ls -lart /usr/bin/gcc-ar
#/usr/bin/x86_64-linux-gnu-gcc-ar -> gcc-ar-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ar
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ar-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ar-$sCible
rm /usr/bin/x86_64-linux-gnu-gcc-ar ; ln -s /usr/bin/x86_64-linux-gnu-gcc-ar-$sCible /usr/bin/x86_64-linux-gnu ; ls -lart /usr/bin/x86_64-linux-gnu-gcc-ar

#gcc-nm
#gcc-nm-$sCible -> x86_64-linux-gnu-gcc-nm-$sCible
ls -lart /usr/bin/gcc-nm
ls -lart /usr/bin/gcc-nm-$sSource
ls -lart /usr/bin/gcc-nm-$sCible
rm /usr/bin/gcc-nm ; ln -s /usr/bin/gcc-nm-$sCible /usr/bin/gcc-nm ; ls -lart /usr/bin/gcc-nm
#/usr/bin/x86_64-linux-gnu-gcc-nm -> gcc-nm-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcc-nm
ls -lart /usr/bin/x86_64-linux-gnu-gcc-nm-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcc-nm-$sCible
rm /usr/bin/x86_64-linux-gnu-gcc-nm ; ln -s /usr/bin/x86_64-linux-gnu-gcc-nm-$sCible /usr/bin/x86_64-linux-gnu-gcc-nm ; ls -lart /usr/bin/x86_64-linux-gnu-gcc-nm

#gcc-ranlib
#gcc-ranlib-$sCible -> x86_64-linux-gnu-gcc-ranlib-$sCible
ls -lart /usr/bin/gcc-ranlib
ls -lart /usr/bin/gcc-ranlib-$sSource
ls -lart /usr/bin/gcc-ranlib-$sCible
rm /usr/bin/gcc-ranlib ; ln -s /usr/bin/gcc-ranlib-$sCible /usr/bin/gcc-ranlib ; ls -lart /usr/bin/gcc-ranlib
#/usr/bin/x86_64-linux-gnu-gcc-ranlib -> gcc-ranlib-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ranlib
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ranlib-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcc-ranlib-$sCible
rm /usr/bin/x86_64-linux-gnu-gcc-ranlib ; ln -s /usr/bin/x86_64-linux-gnu-gcc-ranlib-$sCible /usr/bin/x86_64-linux-gnu-gcc-ranlib ; ls -lart /usr/bin/x86_64-linux-gnu-gcc-ranlib

#gcov
#/usr/bin/gcov -> gcov-$sCible
ls -lart /usr/bin/gcov
ls -lart /usr/bin/gcov-$sSource
ls -lart /usr/bin/gcov-$sCible
rm /usr/bin/gcov ; ln -s /usr/bin/gcov-$sCible /usr/bin/gcov ; ls -lart /usr/bin/gcov
#/usr/bin/x86_64-linux-gnu-gcov -> gcov-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcov
ls -lart /usr/bin/x86_64-linux-gnu-gcov-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcov-$sCible
rm /usr/bin/x86_64-linux-gnu-gcov ; ln -s /usr/bin/x86_64-linux-gnu-gcov-$sCible /usr/bin/x86_64-linux-gnu-gcov ; ls -lart /usr/bin/x86_64-linux-gnu-gcov

#gcov-dump
#/usr/bin/gcov-dump -> gcov-dump-$sCible
ls -lart /usr/bin/gcov-dump
ls -lart /usr/bin/gcov-dump-$sSource
ls -lart /usr/bin/gcov-dump-$sCible
rm /usr/bin/gcov-dump ; ln -s /usr/bin/gcov-dump-$sCible /usr/bin/gcov-dump ; ls -lart /usr/bin/gcov-dump
#/usr/bin/x86_64-linux-gnu-gcov-dump -> gcov-dump-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcov-dump
ls -lart /usr/bin/x86_64-linux-gnu-gcov-dump-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcov-dump-$sCible
rm /usr/bin/x86_64-linux-gnu-gcov-dump ; ln -s /usr/bin/x86_64-linux-gnu-gcov-dump-$sCible /usr/bin/x86_64-linux-gnu-gcov-dump ; ls -lart /usr/bin/x86_64-linux-gnu-gcov-dump

#gcov-tool
#/usr/bin/gcov-tool -> gcov-tool-$sCible
ls -lart /usr/bin/gcov-tool
ls -lart /usr/bin/gcov-tool-$sSource
ls -lart /usr/bin/gcov-tool-$sCible
rm /usr/bin/gcov-tool ; ln -s /usr/bin/gcov-tool-$sCible /usr/bin/gcov-tool ; ls -lart /usr/bin/gcov-tool
#/usr/bin/x86_64-linux-gnu-gcov-tool -> gcov-tool-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gcov-tool
ls -lart /usr/bin/x86_64-linux-gnu-gcov-tool-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-gcov-tool-$sCible
rm /usr/bin/x86_64-linux-gnu-gcov-tool ; ln -s /usr/bin/x86_64-linux-gnu-gcov-tool-$sCible /usr/bin/x86_64-linux-gnu-gcov-tool ; ls -lart /usr/bin/x86_64-linux-gnu-gcov-tool

#lgo-dump
#/usr/bin/lto-dump -> lto-dump-$sCible
ls -lart /usr/bin/lto-dump
ls -lart /usr/bin/lto-dump-$sSource
ls -lart /usr/bin/lto-dump-$sCible
rm /usr/bin/lto-dump ; ln -s /usr/bin/lto-dump-$sCible /usr/bin/lto-dump ; ls -lart /usr/bin/lto-dump
#/usr/bin/x86_64-linux-gnu-lto-dump -> lto-dump-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-lto-dump
ls -lart /usr/bin/x86_64-linux-gnu-lto-dump-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-lto-dump-$sCible
rm /usr/bin/x86_64-linux-gnu-lto-dump ; ln -s /usr/bin/x86_64-linux-gnu-lto-dump-$sCible /usr/bin/x86_64-linux-gnu-lto-dump ; ls -lart /usr/bin/x86_64-linux-gnu-lto-dump

#cpp
#/usr/bin/cpp -> cpp-$sCible
ls -lart /usr/bin/cpp
ls -lart /usr/bin/cpp-$sSource
ls -lart /usr/bin/cpp-$sCible
rm /usr/bin/cpp ; ln -s /usr/bin/cpp-$sCible /usr/bin/cpp ; ls -lart /usr/bin/cpp
#/usr/bin/x86_64-linux-gnu-cpp -> cpp-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-cpp
ls -lart /usr/bin/x86_64-linux-gnu-cpp-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-cpp-$sCible
rm /usr/bin/x86_64-linux-gnu-cpp ; ln -s /usr/bin/x86_64-linux-gnu-cpp-$sCible /usr/bin/x86_64-linux-gnu-cpp ; ls -lart /usr/bin/x86_64-linux-gnu-cpp

#g++
#/usr/bin/g++ -> g++-$sCible
ls -lart /usr/bin/g++
ls -lart /usr/bin/g++-$sSource
ls -lart /usr/bin/g++-$sCible
rm /usr/bin/g++ ; ln -s /usr/bin/g++-$sCible /usr/bin/g++ ; ls -lart /usr/bin/g++
#/usr/bin/x86_64-linux-gnu-g++ -> g++-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-g++
ls -lart /usr/bin/x86_64-linux-gnu-g++-$sSource
ls -lart /usr/bin/x86_64-linux-gnu-g++-$sCible
rm /usr/bin/x86_64-linux-gnu-g++ ; ln -s /usr/bin/x86_64-linux-gnu-g++-$sCible /usr/bin/x86_64-linux-gnu-g++ ; ls -lart /usr/bin/x86_64-linux-gnu-g++

#liblto_plugin
#/usr/lib/bfd-plugins/liblto_plugin.so -> ../gcc/x86_64-linux-gnu/$sCible/liblto_plugin.so
echo "verifier les liens car possible changement"
ls -lart /usr/lib/bfd-plugins/liblto_plugin.so
ls -lart /usr/lib/gcc/x86_64-linux-gnu/$sCible/liblto_plugin.so
ls -lart /usr/libexec/gcc/x86_64-linux-gnu/$sCible/liblto_plugin.so
rm /usr/lib/bfd-plugins/liblto_plugin.so ; ln -s /usr/libexec/gcc/x86_64-linux-gnu/$sCible/liblto_plugin.so /usr/lib/bfd-plugins/liblto_plugin.so ; ls -lart /usr/lib/bfd-plugins/liblto_plugin.so

#traitements de cohésion
echo "### cohesion ###"

#x86_64-linux-gnu-ar
ln -s /usr/bin/x86_64-linux-gnu-ar /usr/bin/x86_64-linux-gnu-ar-$sSource
ln -s /usr/bin/x86_64-linux-gnu-ar /usr/bin/x86_64-linux-gnu-ar-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-ar*
#x86_64-linux-gnu-as
ln -s /usr/bin/x86_64-linux-gnu-as /usr/bin/x86_64-linux-gnu-as-$sSource
ln -s /usr/bin/x86_64-linux-gnu-as /usr/bin/x86_64-linux-gnu-as-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-as*
#x86_64-linux-gnu-c++filt
ln -s /usr/bin/x86_64-linux-gnu-c++filt /usr/bin/x86_64-linux-gnu-c++filt-$sSource
ln -s /usr/bin/x86_64-linux-gnu-c++filt /usr/bin/x86_64-linux-gnu-c++filt-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-c++filt*
#x86_64-linux-gnu-gprof
ln -s /usr/bin/x86_64-linux-gnu-gprof /usr/bin/x86_64-linux-gnu-gprof-$sSource
ln -s /usr/bin/x86_64-linux-gnu-gprof /usr/bin/x86_64-linux-gnu-gprof-$sCible
ls -lart /usr/bin/x86_64-linux-gnu-gprof*
#lwp-dump
ln -s /usr/bin/lwp-dump /usr/bin/lwp-dump-$sSource ; ls -lart /usr/bin/lwp-dump-$sSource
ln -s /usr/bin/lwp-dump /usr/bin/lwp-dump-$sCible ; ls -lart /usr/bin/lwp-dump-$sCible
ls -lart /usr/bin/lwp-dump*

exit 0
SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL