web-dev-qa-db-fra.com

Installer une version plus ancienne de gcc (3.4.3) sur Ubuntu 14.04 (actuellement installé 4.8)

J'ai installé gcc 4.8 mais j'ai également besoin d'installer gcc 3.4.3. J'ai suivi ces étapes:

  1. Téléchargé gcc 3.4.3 à partir de gcc.parentingamerica.com/releases.
  2. Extrait le goudron.
  3. ./configurer
  4. make

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

4
user7706975

Vérifiez votre version actuelle en exécutant gcc -v.

Ensuite, vous souhaitez installer une version précédente.

  1. Pour 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 gccet 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 gccname__). 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

  1. Sélection d'un compilateur pour le but actuel (construction d'une application)

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++ à gccet si vous ne changez que gccname__, 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

  1. Si vous voulez garder le compilateur alternatif installé. Ensuite, il suffit de passer en mode automatique dans update-alternative qui correspond à l'option 0.
  2. Si vous souhaitez supprimer le compilateur alternatif, supprimez-le comme suit: Sudo apt-get remove gcc-3.4 g++-3.4, puis exécutez

Sudo 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.
8
ankit7540

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:

  1. ouvrez un émulateur de terminal et tapez apt-cache showpkg <package-name> une liste des versions disponibles sera imprimée
  2. Puis tapez Sudo apt-get install <package-name>=<package-version-number> pour installer la version de votre choix
  3. tapez apt-mark hold <package-name> ceci empêchera la mise à jour du paquet
  4. si vous rencontrez des problèmes, tapez man apt pour ouvrir le manuel de la commande.
0
Oriol Gonzalo