J'ai installé gcc 4.8 mais j'ai également besoin d'installer gcc 3.4.3. J'ai suivi ces étapes:
Ensuite, cette erreur est générée: http://paste.ubuntu.com/24807240/
Quelqu'un peut-il suggérer ce qui ne va pas et comment demander à gcc d'utiliser l'ancienne version une fois installée?
Système d'exploitation: Ubuntu 14.04 LTS, 64 bits
Vérifiez votre version actuelle en exécutant gcc -v
.
Ensuite, vous souhaitez installer une version précédente.
gcc-3.4
Étant donné que cette version est disponible dans les anciennes versions d'Ubuntu, nous devons disposer des référentiels appropriés pour la version. Après quelques recherches, j’ai trouvé que c’était la suivante, qu’il fallait ajouter au /etc/apt/sources.list
deb http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
Ensuite, après Sudo apt-get update
, les nouveaux référentiels seront disponibles.
Ensuite, installez le compilateur requis. J'installe généralement gcc
et g++
de la même version pour assurer l'interopérabilité. Pour usage général, il est recommandé.
Par conséquent,
Sudo apt-get install gcc-3.4 g++-3.4
2. Vérification des compilateurs disponibles
A ce stade, on aura deux jeux de compilateurs (un pour g++
et gcc
name__). Ceux-ci peuvent être vérifiés par dpkg --list | grep compiler
,
dpkg --list | grep compiler
dpkg --list | grep compile
ii g++ 4:4.8.2-1ubuntu6 AMD64 GNU C++ compiler
ii g++-3.4 3.4.6-5 AMD64 The GNU C++ compiler
ii g++-4.8 4.8.4-2ubuntu1~14.04.1 AMD64 GNU C++ compiler
ii gcc 4:4.8.2-1ubuntu6 AMD64 GNU C compiler
ii gcc-3.4 3.4.6-5 AMD64 The GNU C compiler
ii gcc-4.8 4.8.4-2ubuntu1~14.04.1 AMD64 GNU C compiler
ii hardening-includes 2.5ubuntu2.1 all Makefile for enabling compiler flags for security hardening
ii libllvm3.6:AMD64 1:3.6-2ubuntu1~trusty1 AMD64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:AMD64 0.4.1-0ubuntu1 AMD64 library interface to the XKB compiler - shared library
ii pkg-config 0.26-1ubuntu4 AMD64 manage compile and link flags for libraries
Vous pouvez vérifier l'emplacement d'installation si vous en avez besoin.
L'important est l'emplacement des deux compilateurs, qui peuvent être listés par,
ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 5月 13 2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root 91K 1月 4 2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/gcc-4.8
et
ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root 7 4月 8 2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root 93K 1月 4 2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/g++-4.8
Après avoir installé les compilateurs, on peut simplement basculer entre les compilateurs. Cela se fait en mettant à jour la liste des versions alternatives d'une application. Pour ce faire, la commande update-alternative
doit être exécutée avec certains paramètres.
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
Sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
Sudo update-alternatives --config gcc
Cela reliera g++
à gcc
et si vous ne changez que gcc
name__, g++
changera automatiquement.
Ensuite, chaque fois que vous voulez changer le compilateur, entrez ceci:
Sudo update-alternatives --config gcc
Ensuite, il est demandé à l'utilisateur quel compilateur choisir.
Sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 60 auto mode
1 /usr/bin/gcc-3.4 40 manual mode
2 /usr/bin/gcc-4.8 60 manual mode
Press enter to keep the current choice[*], or type selection number:
Ici, vous pouvez choisir en appuyant sur la touche (0,1) puis en appuyant sur entrée. Le changement dans la version actuellement sélectionnée peut être vérifié par gcc -v
Suppression du update-alternative
update-alternative
qui correspond à l'option 0.Sudo apt-get remove gcc-3.4 g++-3.4
, puis exécutezSudo update-alternatives --config gcc
Le programme update-alternatives
recherchera les liens et les trouvera manquants et supprimera automatiquement l’alternative, revenant à l’autre option disponible.
Sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.
Il n'est pas possible d'avoir des versions du même package, car il s'agirait de fichiers en conflit, par exemple: vous auriez du mal à mettre à jour l'un des packages car ils seraient placés au même emplacement.
Cela dit, vous avez la possibilité de déclasser la version du programme à une version plus ancienne. Voici comment:
apt-cache showpkg <package-name>
une liste des versions disponibles sera impriméeSudo apt-get install <package-name>=<package-version-number>
pour installer la version de votre choixapt-mark hold <package-name>
ceci empêchera la mise à jour du paquetman apt
pour ouvrir le manuel de la commande.