it-swarm.com.de

apt sagt, dass Pakete zurückgehalten wurden, was tun?

Die Ausgabe von apt-get upgrade ist:

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-Apache python-cryptography python-openssl

Was bedeutet das? Sollte ich etwas unternehmen? Wenn ja, was?

16

Schnelle und EINFACHE Lösung:

Ich hatte unzählige Male das gleiche Problem. NICHT zuerst Sudo apt-get dist-upgrade machen. Sehr wichtig.

Warum?

Es kann Ihr System sehr instabil machen, Programme können abstürzen und Sie können viele Funktionen in Ihrem Betriebssystem verlieren.

Sie MÜSSEN jedes Paket einzeln installieren, JEDOCH, während In diesem Fall werden auch andere Abhängigkeiten automatisch installiert, und Ihr Problem ist in wenigen Minuten behoben.

Ich hatte keine Probleme mit der folgenden Lösung. Es ist ziemlich schnell und einfach.


Tun Sie dies zuerst:

apt list --upgradable

  • Daraufhin wird eine Liste der Pakete angezeigt, die aktualisiert werden können.

Führen Sie als Nächstes Folgendes aus:

  • Beginnen Sie am Anfang der Liste mit dem ersten Paket und geben Sie Folgendes ein:

Sudo apt-get install package-name-here

  • Dadurch wird der Installationsprozess durchlaufen und es werden Abhängigkeiten abgerufen/installiert.

Führen Sie nach Abschluss dieses Vorgangs Folgendes aus:

apt list --upgradable

  • Dies zeigt wieder, welche Pakete aktualisiert werden können. Ihre Liste der Pakete sollte jetzt abnehmen. Befolgen Sie die Liste der Pakete und geben Sie nach jeder Paketinstallation apt list --upgradable ein. Dies sollte nur einige Minuten dauern.

Endlich:

Sudo apt-get autoclean

Sudo apt-get update && Sudo apt-get dist-upgrade

Wenn diese Lösung für Sie funktioniert hat, vergessen Sie bitte nicht, sie zu aktualisieren, damit die richtige Lösung für andere zur Verfügung steht und ganz oben in der Liste der Antworten steht .

Wenn diese Lösung aus irgendeinem Grund nicht für Sie funktioniert, lesen Sie bitte die Antwort von Benutzer GAD3R weiter unten. Es ist auch eine gute Lösung.

Vielen Dank.

24

Was bedeutet das?

The following packages have been kept back:

Die Antwort ist hier

Dies bedeutet, dass es neue Versionen dieser Pakete gibt, die aus irgendeinem Grund nicht installiert werden. Mögliche Gründe sind fehlerhafte Abhängigkeiten (für ein Paket, von dem es abhängt, steht keine Version zum Herunterladen zur Verfügung) oder neue Abhängigkeiten (das Paket ist seit der letzten Version von neuen Paketen abhängig).

Soll ich etwas unternehmen?

Sie müssen dist-upgrade verwenden, um die neuen Abhängigkeiten zu installieren und die Pakete zu aktualisieren:

Sudo apt-get dist-upgrade

Das Problem kann durch Ausführen von dist-upgrade behoben werden, wenn Sie Folgendes nicht benötigen:

Korrigieren Sie fehlerhafte Abhängigkeiten

Sudo apt-get -f install 

Entfernen Sie einige Pakete, die nicht mehr auf Ihrem System installiert sind:

Sudo apt-get autoclean

Setzen Sie das gewünschte Paket in die Warteschleife:

echo "<package_name> hold" | dpkg --set-selections

Konfigurieren Sie das benannte Paket neu:

dpkg-reconfigure <package_name>
11
GAD3R

Aus dieser Unix SE-Antwort :

Erstens, wie oben erwähnt, bitte KEIN Produktionssystem dist-upgrade! Während dist-upgrade zurückgehaltene Pakete "löst", ist es definitiv keine Lösung für dieses Problem und wird ) ziemlich wahrscheinlich verursachen Sie mehr Kummer als Gutes, wenn Sie es ausführen, ohne die Auswirkungen auf Ihr System zu kennen.

Wenn für das Upgrade eines Pakets die Installation zusätzlicher Pakete erforderlich ist, wird es beim Ausführen von Sudo apt-get upgrade "zurückgehalten".

Wie oben erwähnt, können Sie diese "zurückgehaltenen" Pakete manuell installieren, indem Sie explizit Sudo apt-get install [paste kept back packages here] ausführen. Dadurch werden diese Pakete jedoch als "manuell installiert" markiert, was häufig nicht erwünscht ist.

Führen Sie einfach Sudo apt-get --with-new-pkgs upgrade aus, um zusätzliche Pakete automatisch zu installieren, die für ein Upgrade der "zurückgehaltenen" Pakete erforderlich sind, ohne die "zurückgehaltenen" Pakete als manuell installiert zu markieren.

3
Brian Heese

Ich habe diese Antwort in meinen Blog aufgenommen. Wenn du sehen willst, dass du dorthin gehen kannst, benutze diesen Link .

Der obige Fehler tritt häufig im Ubuntu-Terminal auf, wenn Sie versuchen, ein Upgrade durchzuführen (apt-get upgrade). Dies geschieht normalerweise, weil sich die Abhängigkeiten eines Pakets, das Sie installieren, geändert haben. Um ein Upgrade durchführen zu können, müssen auch diese zuerst aktualisiert werden. Es ist also sehr einfach, das zu lösen. Sie können die Pakete sehen, die unter dieser Fehlermeldung zurückgehalten wurden. Als Beispiel kann ich folgende Pakete in der Liste sehen:

gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Geben Sie nicht einfach Sudo apt-get dist-upgrade ein. Dies ist sehr gefährlich, da alle ausstehenden Updates installiert werden. Dies könnte Ihre Arbeitsumgebung in einen sehr instabilen Zustand versetzen.

Daher ist meine Meinung berühmt zu benutzen

Sudo apt-get install [package]

Sie können [package] durch das in der Fehlermeldung angegebene Paket ersetzen. Sie können sie auch als Liste ablegen (einfach kopieren und einfügen). Als Beispiel in meinem Fall kann ich eingeben

Sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Wenn du willst

Sudo apt-get dist-upgrade

überprüfen Sie aus irgendeinem Grund die Liste der Pakete mit der Simulationsoption -s (Sudo apt-get -s dist-upgrade) oder ohne die Option -s, die Sie vor dem Akzeptieren beenden können. (Sie können immer die Option nein wählen)

Kürzlich führte ein Debian-Sicherheitsupdate einige neue Abhängigkeiten ein. In diesem Fall erforderte das linux-image-Paket unter anderem linux-firmware. Also wurden sie zurückgehalten und nicht von unattended-upgrade installiert. Nach einigen Tests und Bestätigungen konnte ich selektiv nur diese Pakete installieren , ohne andere ausstehende Updates zu berühren:

apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')

1
Dick Visser