Ich räume gerade mehrere Server auf.
Ich habe ein merkwürdiges Verhalten bemerkt:
Wenn ich das tue apt-get autoremove
, werden mehrere Header aufgelistet, die automatisch entfernt werden sollen, wenn ich fortfahre. Manchmal bleiben die Dateien / Ordner erhalten /usr/src
, manchmal werden sie entfernt.
Gibt es einen Grund, warum oder wo ich mit der Suche beginnen kann? Google ist nicht viel aufgetaucht.
Ein Computer, auf dem die Header noch vorhanden sind, obwohl beim automatischen Entfernen eine "0 zum Entfernen" ausgegeben wird
ubuntu@acc-ws-website-1:~$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 65 not upgraded.
ubuntu@acc-ws-website-1:~$ ls -lart /usr/src
total 108
drwxr-xr-x 10 root root 4096 Apr 16 2014 ..
drwxr-xr-x 24 root root 4096 Jul 8 2014 linux-headers-3.13.0-24
drwxr-xr-x 7 root root 4096 Jul 8 2014 linux-headers-3.13.0-24-generic
drwxr-xr-x 3 ubuntu ubuntu 4096 Apr 17 2015 ixgbevf-2.14.2
drwxr-xr-x 24 root root 4096 Oct 6 2015 linux-headers-3.13.0-65
drwxr-xr-x 7 root root 4096 Oct 6 2015 linux-headers-3.13.0-65-generic
drwxr-xr-x 24 root root 4096 Oct 20 2015 linux-headers-3.13.0-66
drwxr-xr-x 7 root root 4096 Oct 20 2015 linux-headers-3.13.0-66-generic
drwxr-xr-x 24 root root 4096 Nov 5 2015 linux-headers-3.13.0-67
drwxr-xr-x 7 root root 4096 Nov 5 2015 linux-headers-3.13.0-67-generic
drwxr-xr-x 24 root root 4096 Nov 10 2015 linux-headers-3.13.0-68
drwxr-xr-x 7 root root 4096 Nov 10 2015 linux-headers-3.13.0-68-generic
drwxr-xr-x 24 root root 4096 Dec 1 2015 linux-headers-3.13.0-70
drwxr-xr-x 7 root root 4096 Dec 1 2015 linux-headers-3.13.0-70-generic
drwxr-xr-x 24 root root 4096 Dec 2 2015 linux-headers-3.13.0-71
drwxr-xr-x 7 root root 4096 Dec 2 2015 linux-headers-3.13.0-71-generic
drwxr-xr-x 24 root root 4096 Dec 17 2015 linux-headers-3.13.0-73
drwxr-xr-x 7 root root 4096 Dec 17 2015 linux-headers-3.13.0-73-generic
drwxr-xr-x 24 root root 4096 Dec 19 2015 linux-headers-3.13.0-74
drwxr-xr-x 7 root root 4096 Dec 19 2015 linux-headers-3.13.0-74-generic
drwxr-xr-x 24 root root 4096 Feb 2 2016 linux-headers-3.13.0-77
drwxr-xr-x 7 root root 4096 Feb 2 2016 linux-headers-3.13.0-77-generic
drwxr-xr-x 24 root root 4096 Feb 23 2016 linux-headers-3.13.0-79
drwxr-xr-x 7 root root 4096 Feb 23 2016 linux-headers-3.13.0-79-generic
drwxr-xr-x 24 root root 4096 Mar 30 06:50 linux-headers-3.13.0-115
drwxr-xr-x 7 root root 4096 Mar 30 06:50 linux-headers-3.13.0-115-generic
drwxr-xr-x 27 root root 4096 Mar 30 06:52 .
ubuntu@acc-ws-website-1:~$ uname -r
3.13.0-112-generic
Während ich so etwas erwarten würde:
ubuntu@tools-jenkins:~$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 94 not upgraded.
ubuntu@tools-jenkins:~$ ls -lart /usr/src
total 32
drwxr-xr-x 10 root root 4096 Mar 25 2015 ..
drwxr-xr-x 24 root root 4096 Dec 6 06:39 linux-headers-3.13.0-105
drwxr-xr-x 7 root root 4096 Dec 6 06:39 linux-headers-3.13.0-105-generic
drwxr-xr-x 24 root root 4096 Mar 8 06:44 linux-headers-3.13.0-112
drwxr-xr-x 7 root root 4096 Mar 8 06:44 linux-headers-3.13.0-112-generic
drwxr-xr-x 24 root root 4096 Mar 30 06:26 linux-headers-3.13.0-115
drwxr-xr-x 7 root root 4096 Mar 30 06:26 linux-headers-3.13.0-115-generic
drwxr-xr-x 8 root root 4096 Apr 3 10:50 .
ubuntu@tools-jenkins:~$ uname -r
3.13.0-105-generic
ubuntu-14.04
apt
ShadowFlame
quelle
quelle
dpkg-query -f '${binary:Package}\n' -W linux-headers\*
) mit und sagen Sie, ob die/usr/src/linux-headers-*
noch einen vollständigen Kernel-Header-Baum enthalten.Antworten:
Wenn Sie immer noch viele
linux-headers*
Pakete auf Ihrem System installiert haben, können Sie diese einfache Methode ausprobieren, um alte Header zu entfernen:Wenn meine Vermutung richtig ist, haben Sie Ihre Header irgendwie als manuell installiert markiert und dies verhindert, dass Ihr System diese Pakete entfernt. Beispielsweise haben Sie die Pakete direkt installiert, dh Sie haben apt gebeten, die genaue Version des Kernel-Header-Pakets zu installieren. Die obigen Befehle versuchen, alle diese Pakete als automatisch installiert zu markieren und die Dinge wie erwartet funktionieren zu lassen.
Wenn die Pakete möglicherweise bereits entfernt wurden, die Ordner jedoch weiterhin bestehen und nur einige Reste enthalten, bedeutet dies, dass diese Dateien nicht zum Paket gehören. Dies verhindert, dass apt das oberste Verzeichnis beim Deinstallieren des
linux-headers*
Pakets entfernt. In diesem Fall sollten Sie die Dateien manuell entfernen.Trivia : Die automatische Entfernungsfunktion von apt funktioniert nur für Pakete, die automatisch installiert wurden. Dies bedeutet, dass das Paket buchstäblich als "automatisch installiert" markiert werden muss und dass es keine Pakete geben sollte, die davon abhängig sind. Für den Linux-Kernel und seine Header haben wir dieses allgemeine Szenario:
linux-generic
,linux-image-generic
undlinux-headers-generic
das ist in der Regel als manuell installiert markiertlinux-image-4.8.0-45-generic
und Metapakete hängen von einigen solcher Pakete ab. Diese werden normalerweise als "automatisch installiert" markiert.quelle
Na siehst du das 94 nicht aufgerüstet? Das ist das Problem, ich hatte ein ähnliches Problem und dann habe ich alle Elemente manuell aktualisiert (die nicht mit apt-get upgrade aktualisiert wurden, diese Dateien enthalten diese Abhängigkeiten). Und danach habe ich apt-get autoremove verwendet und es hat funktioniert. Wenn Sie ein Upgrade mit apt-get upgrade durchführen, wird am Ende des ausführlichen Texts eine Liste der nicht aktualisierten Dateien angezeigt. Nimm sie eins nach dem anderen (mach dir keine Sorgen, dass einige Upgrades die Hälfte dieser Liste aktualisieren). Hoffe das hilft, Prost Kumpel.
PS Vergewissern Sie sich vor dem Upgrade, dass Sie ein Backup-Image des funktionierenden Systems erstellt haben, falls etwas schief geht.
quelle