web-dev-qa-db-fra.com

Impossible d'installer build-essential / gcc / g ++ après la mise à niveau vers 17.04

Depuis la mise à niveau d'Ubuntu 16.04 à 17.04, je ne peux plus installer gcc-7 ou g++-7 à partir du référentiel http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubunt . En fait, je ne peux même pas installer build-essential.

Sous Logiciels et mises à jour > Autres logiciels , le référentiel est répertorié comme ceci :

http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu zesty main

Essayer d'installer build-essential:

$ Sudo apt install build-essential
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: gcc (>= 4:5.2) but it is not going to be installed
                   Depends: g++ (>= 4:5.2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Toutefois:

$ gcc --version
gcc (Ubuntu 5.4.1-8ubuntu1) 5.4.1 20170304
...
$ g++ --version
g++ (Ubuntu 5.4.1-8ubuntu1) 5.4.1 20170304
...

Alors, comment puis-je réinstaller build-essential?

7
kleinfreund

J'ai donc pu réinstaller build-essential en procédant comme suit:

$ Sudo apt install build-essential
...
The following packages have unmet dependencies:
 build-essential : Depends: gcc (>= 4:5.2) but it is not going to be installed
                   Depends: g++ (>= 4:5.2) but it is not going to be installed

Une version gcc 5.2 (plus grande) est requise. Essayons donc d'installer gcc.

$ Sudo apt install gcc
...
The following packages have unmet dependencies:
gcc : Depends: cpp (>= 4:6.3.0-2ubuntu1) but it is not going to be installed
      Depends: gcc-6 (>= 6.3.0-9~) but it is not going to be installed

D'accord. Il manque quelque chose. Essayons d’installer ça.

$ Sudo apt install cpp
...
The following packages have unmet dependencies:
 cpp : Depends: cpp-6 (>= 6.3.0-9~) but it is not going to be installed

Toujours rien. Essayer encore.

$ Sudo apt install cpp-6
...
The following packages have unmet dependencies:
 cpp-6 : Depends: gcc-6-base (= 6.3.0-12ubuntu2) but 6.3.0-18ubuntu2~16.04 is to be installed

Encore une fois.

$ Sudo apt install gcc-6-base
...
gcc-6-base is already the newest version (6.3.0-18ubuntu2~16.04).

Donc, ici, je ne sais pas ce qui ne va pas exactement. Il convient de noter qu’une chaîne 16.04 se trouve à la fin de ce numéro de version. Cela semblait étrange. J'ai enlevé ce paquet.

$ Sudo apt remove gcc-6-base

Maintenant, j'ai pu installer build-essential à nouveau. Cela réinstallera également gcc-6-base.

$ Sudo apt install build-essential

Problème restant:

$ Sudo apt upgrade
...
The following packages have been kept back:
  cpp g++ gcc

La racine du problème est similaire à celle ci-dessus, gcc-7-base est défectueux mais je ne peux pas simplement le supprimer, car j’obtiens ceci:

The following packages have unmet dependencies:
 libgcc1 : Depends: gcc-7-base (= 7.1.0-5ubuntu2~16.04) but it is not going to be installed
 va-driver-all : Depends: mesa-va-drivers but it is not going to be installed or
                          vdpau-va-driver but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Zone de danger:

J'ai réussi à résoudre ce problème en procédant comme suit:

$ Sudo apt install aptitude
$ Sudo dpkg --force-all -P gcc-7-base
$ Sudo dpkg --force-all -P gcc-7-base:i386
$ Sudo aptitude install gcc-7-base

Ceci est super dangereux et pourrait casser votre installation. L'exécution de dpkg --force-all -P supprimera un package de manière forcée, ignorant toutes les dépendances sur ce package. La suite par un apt upgrade normal pourrait supprimer presque tous les logiciels pertinents de votre installation.

Je n'ai pu que récupérer à partir de là en usindind aptitude qui résolvait tous les problèmes de dépendance que j'avais.

5
kleinfreund