Das mehrmalige Ausführen von apt update macht ein Upgrade unmöglich

Das mehrmalige Ausführen von apt update macht ein Upgrade unmöglich

Ich habe ein Skript, das das System aktualisiert:

sudo apt update && sudo apt upgrade && sudo apt autoremove

Manchmal wird ein Fehler ausgegeben, der besagt, dass das Upgrade gesperrt ist und die aktualisierbaren Pakete daher nicht aktualisiert werden können. Wenn ich das Skript erneut ausführe, apt updatewird angezeigt, dass nichts zu aktualisieren ist, und wenn es Zeit ist, es auszuführen, wird apt upgradekein Upgrade angezeigt, weil „nichts“ zu aktualisieren ist. Wie kann ich die Pakete aktualisieren, die im ersten Schritt aufgelistet waren apt update?

Realer Fall: Jetzt habe ich Firefox 67.0.3 (Version 67.0.4 ist verfügbar), zuerst apt updatewurde angezeigt, dass es ein Update dafür gibt. Ein Upgrade konnte nicht durchgeführt werden und jetzt, wenn ich es apt updateerneut ausführe, wird kein Upgrade für Firefox aufgeführt und apt upgradees wurde nichts aktualisiert.

Ich habe bei Google nach diesem Problem gesucht, aber keinen Erfolg gehabt. Ich wäre für jede Art von Hilfe dankbar.

Vielen Dank im Voraus und entschuldigen Sie mein Englisch

Antwort1

Der wahrscheinlichste Grund besteht darin, dass Sie Ihr Skript gelegentlich gleichzeitig mit „Unattended Upgrades“ ausführen.

Dies lässt sich ganz einfach überprüfen, indem Sie sich das Protokoll Ihrer unbeaufsichtigten Upgrades ansehen.

Hier ist ein Beispiel meines Protokolls für unbeaufsichtigte Upgrades von heute Morgen:

$ grep 2019-06-21 /var/log/unattended-upgrades/unattended-upgrades.log

2019-06-21 06:35:25,971 INFO Initial blacklist : 
2019-06-21 06:35:25,986 INFO Initial whitelist: 
2019-06-21 06:35:25,986 INFO Starting unattended upgrades script
2019-06-21 06:35:25,986 INFO Allowed origins are: o=Ubuntu,a=disco, o=Ubuntu,a=disco-security, o=UbuntuESM,a=disco, 
2019-06-21 06:36:00,248 INFO Packages that will be upgraded: bind9-host intel-microcode libbind9-161 libdns-export1104 libdns1104 libirs161 libisc-export1100 libisc1100 libisccc161 libisccfg163 liblwres161 libpq5
2019-06-21 06:36:00,248 INFO Writing dpkg log to /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
2019-06-21 06:37:18,374 INFO All upgrades installed

Schauen Sie sich Zeile 5 des Protokolls an ( Packages that will be upgraded:...): Diese Liste wird direkt von apt gezogen. Sie istfastdieselbe Liste, die Sie von erhalten sudo apt update. Die Standardeinstellung für unbeaufsichtigte Upgrades ist, nur das -security-Pocket zu verwenden. Keine -updates, keine -backports, keine PPAs, keine Drittanbieter-Repositorys. Daher werden einige nicht sicherheitsrelevante Pakete möglicherweise nicht installiert. Sie können diese Einstellung ändern.

Sehen Sie sich nun Zeile 7 des Protokolls an ( All upgrades installed): Dies ist Ihre positive Bestätigung, dass alle in Zeile 5 aufgeführten Pakete erfolgreich aktualisiert wurden und dass die unbeaufsichtigten Upgrades die Apt-Sperre freigegeben und für diesen Tag beendet wurden. Wenn ein Problem oder ein Fehler aufgetreten ist oder UU noch funktioniert, wird diese Zeile nicht angezeigt.

sudo apt updateSie können sehen, dass es viele Pakete zu aktualisieren gegeben hätte, wenn ich um 06:35 Uhr ein manuelles Upgrade ausgeführt hätte . Aber wenn ich sudo apt upgradeum 06:38 Uhr ein manuelles Upgrade ausgeführt hätte, wären keine Pakete aktualisiert worden, weil dies bereits durch unbeaufsichtigte Upgrades erledigt worden wäre.

Antwort2

Ich wette, es ist das Ubuntu-Softwareupdate, das immer dann im Weg ist, wenn sudo apt update abgeschlossen ist. Sie sollten Ihre Softwareupdateeinstellungen öffnen und sicherstellen, dass alle Optionen auf „Nie“ eingestellt sind. Ich glaube nicht, dass das das Popup unterdrückt, aber es sollte verhindern, dass es versucht, automatisch zu aktualisieren und die Dateien zu sperren.

Um Firefox zu reparieren, würde ich ausführen sudo apt install --reinstall firefoxund sehen, ob das Problem dadurch behoben wird. Wenn es über eine Sperre klagt, können Sie diese im Allgemeinen mit entfernen sudo rm /var/lib/dpkg/lock.

Übrigens können Sie Ihr Skript beschleunigen, indem Siesudo -- sh -c 'apt update; apt upgrade --autoremove -y'

verwandte Informationen