Build-Essential / gcc / g ++ kann nach dem Upgrade auf 17.04 nicht installiert werden

7

Da von Ubuntu 16,04-17,04 aktualisieren, kann ich nicht mehr installieren gcc-7oder g++-7aus dem http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu Repository. Tatsächlich kann ich nicht einmal installieren build-essential.

Unter Software & Updates > Andere Software wird das Repository wie folgt aufgelistet:

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

Versuch zu installieren 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.

Jedoch:

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

Wie kann ich also build-essentialerneut installieren ?

kleinfreund
quelle
Wenn man bedenkt, dass das gcc-Paket in zesty 4: 6.3.0-2ubuntu1 ist, ist Ihr Upgrade möglicherweise nicht so gut gelaufen. Zumindest sollten Sie diese Toolchain ppa gelöscht haben, bevor Sie den Upgrade-Prozess gestartet haben. Versuchen Sie vielleicht, die eigentlichen Pakete herunterzuladen und manuell zu installieren. (oder sparen Sie sich etwas Zeit und machen Sie eine Neuinstallation
Doug
1
@doug Ich habe so viele Neuinstallationen durchgeführt, weil jedes Mal, wenn Sie dieses System berühren, es kaputt geht. Woher weiß ich, was ich löschen muss, bevor ich ein Upgrade durchführe? Ich gehe davon aus, dass der Upgrade-Prozess etwas nicht auf magische Weise zerstört. :(
kleinfreund

Antworten:

6

So konnte ich build-essentialerneut installieren , indem ich die folgenden Schritte ausführte:

$ 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

Eine gccVersion größer 5.2 ist erforderlich. Versuchen Sie also, sie zu installieren 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

Okay. Es fehlt noch etwas. Versuchen wir das zu installieren.

$ 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

Immer noch nichts. Ich versuche es erneut.

$ 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

Noch einmal.

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

Hier weiß ich also nicht, was genau schief gelaufen ist. Es ist zu beachten, dass 16.04am Ende dieser Versionsnummer eine Zeichenfolge steht. Das schien seltsam. Ich habe das Paket entfernt.

$ sudo apt remove gcc-6-base

Jetzt konnte ich wieder installieren build-essential. Dies wird auch neu installiert gcc-6-base.

$ sudo apt install build-essential

Verbleibendes Problem:

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

Die Wurzel des Problems ist ähnlich wie oben, gcc-7-baseist fehlerhaft, aber ich kann es nicht einfach entfernen, da ich Folgendes bekomme:

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.

Gefahrenzone :

Ich habe dieses Problem mit den folgenden Schritten behoben:

$ 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

Dies ist sehr gefährlich und kann Ihre Installation beschädigen. Durch Ausführen dpkg --force-all -Pwird ein Paket mit Nachdruck entfernt, wobei alle Abhängigkeiten von diesem Paket ignoriert werden. Wenn Sie dies regelmäßig apt upgradetun, wird möglicherweise fast die gesamte relevante Software aus Ihrer Installation entfernt.

Ich konnte mich nur von uns von dort erholen, aptitudewas jedes Abhängigkeitsproblem löste, das ich hatte.

kleinfreund
quelle