codehunter
Goto Top

Alte Kernel-Header loswerden

Hallo!

Ich wundere mich immer wieder, weshalb ich bei der Systemaktualisierung Updates für die Kernelheader vom 4.15er Kernel bekomme, obwohl ich schon lange auf Kernel 5.4 unterwegs bin (allein schon wegen der Vega11-Treiber)

screenshot

Wie kann ich feststellen, welches Paket diese Header überhaupt erfordert? Ein einfaches
sudo apt-get clean && sudo apt-get autoclean && sudo apt-get autoremove 
entfernt es jedenfalls nicht, daher gehe ich davon aus, irgendwo gibt es eine Abhängigkeit. Die alten 4.15er Kernel sind jedenfalls schon lange deinstalliert.

Grüße
Cody

Content-ID: 657753

Url: https://administrator.de/contentid/657753

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

HanTrio
HanTrio 01.03.2021 um 14:03:04 Uhr
Goto Top
Grundsätzlich kannst du mal schauen, ob dir ein
sudo apt autoremove --purge
evtl was bringt.

Ansonsten kann es sein, dass der alte Kernel als "manuell installiert" gilt (im Gegensatz zu "automatisch").
Kannst du rausfinden zB mit:
apt-mark showauto 'linux-image-.*'  
und
apt-mark showmanual 'linux-image-.*'  

Weiteres Vorgehen dann siehe zB hier:
https://help.ubuntu.com/community/RemoveOldKernels
("mark Kernel as autoremovable")

Oder aber, wie auch in dem Artikel beschrieben, du löschst einfach spezifisch den alten Kernel:
sudo apt-get purge linux-image-4.15.0-136-generic
sudo dpkg --purge linux-headers-4.15.0-136 linux-headers-4.15.0-136-generic
Codehunter
Codehunter 01.03.2021 um 14:17:36 Uhr
Goto Top
Zitat von @HanTrio:

sudo apt autoremove --purge

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 66 nicht aktualisiert.

apt-mark showauto 'linux-image-.*'  

linux-image-5.4.0-62-generic
linux-image-5.4.0-65-generic
linux-image-generic-hwe-18.04-edge

apt-mark showmanual 'linux-image-.*'  

linux-image-generic-hwe-18.04

Weiteres Vorgehen dann siehe zB hier:
https://help.ubuntu.com/community/RemoveOldKernels
("mark Kernel as autoremovable")

Siehe oben, da ist kein 4.15er zum Markieren mehr da.

sudo apt-get purge linux-image-4.15.0-136-generic
> sudo dpkg --purge linux-headers-4.15.0-136 linux-headers-4.15.0-136-generic

Einfach so killen wollte ich eigentlich nicht, ohne zu wissen, warum das Paket installiert ist. Mit solchen "gewaltsam" zerbrochenen Abhängigkeiten hab ich mir schon mal das System zerschossen.
erikro
erikro 01.03.2021 um 15:29:09 Uhr
Goto Top
Moin,

Zitat von @Codehunter:
daher gehe ich davon aus, irgendwo gibt es eine Abhängigkeit. Die alten 4.15er Kernel sind jedenfalls schon lange deinstalliert.

Offenbar weißt Du nicht, wofür die Header da sind. Die werden nur zum Kompilieren benötigt, wenn die Software Kernelfunktionen direkt anspricht (z. B. Kernelmodule). Von Kernel Headern ist nichts abhängig. In der Regel muss man die noch nicht einmal installieren. Du kannst also die alten Header bedenken- und ersatzlos aus dem System entfernen.

hth

Erik
Codehunter
Codehunter 01.03.2021 um 15:40:08 Uhr
Goto Top
Zitat von @erikro:

Offenbar weißt Du nicht, wofür die Header da sind. Die werden nur zum Kompilieren benötigt, wenn die Software Kernelfunktionen direkt anspricht (z. B. Kernelmodule). Von Kernel Headern ist nichts abhängig. In der Regel muss man die noch nicht einmal installieren. Du kannst also die alten Header bedenken- und ersatzlos aus dem System entfernen.

Eben genau deswegen bin ich mir da nicht so sicher. Auf dem System gibt es auch mehrere Entwicklertools. Die werden zwar nicht für Kernelentwicklung eingesetzt, aber dass die gar nicht von solchen Kernelheadern abhängig sind, kann ich weder ausschließen noch bestätigen. Zumindest weiß ich, dass ich die Header nicht manuell installiert habe. Also muss irgendein Paket danach verlangt haben. Und das würde ich gerne finden um eine qualifizierte Entscheidung treffen zu können.
erikro
erikro 01.03.2021 um 15:48:51 Uhr
Goto Top
Wenn Du selbst für Dein System kompilierst, brauchst Du nur die Header des aktuellen Kernels. Sonst geht das sowieso schief. Wenn Du für andere Kernel kompilierst, brauchst Du deren Header. Aber aus Deiner Frage schließe ich, dass Du das nicht tust. Wenn Du gar nicht kompilierst, dann brauchst Du die Header überhaupt nicht. Und selbst wenn Du sie mal brauchen solltest, dann ist das kein Problem für den laufenden Betrieb. Der Compiler meckert dann, dass die Sourcen nicht gefunden wurden und dann werden sie halt nachinstalliert.

Was sind das denn für "Entwicklertools" und wofür nutzt Du sie?
Codehunter
Codehunter 01.03.2021 um 16:08:42 Uhr
Goto Top
Zitat von @erikro:

Was sind das denn für "Entwicklertools" und wofür nutzt Du sie?

Im wesentlichen Netbeans und Lazarus. Ich bin kein Kernel-Entwickler und baue auch keine Treiber o.ä.

Ich selbst bin mir da "keiner Schuld bewusst" und brauche die Kernelheader auch nicht. Entschuldigt bitte die blöde Frage, ich bin halt ein gebranntes Kind was das gutgläubige Entfernen von Paketen betrifft die was mit dem Kernel zu tun haben. Die entscheidende Frage für mich ist: Kann das Entfernen der Kernelheader das System beschädigen (insbesondere den nächsten Reboot sabotieren)? Aus den bisherigen Antworten schließe ich mal: Eher nicht.
Codehunter
Codehunter 02.03.2021 um 09:41:31 Uhr
Goto Top
Also ich hab mich jetzt mal getraut, aber so wirklich viel weiter bin ich noch immer nicht:

Zitat von @HanTrio:

sudo apt-get purge linux-image-4.15.0-136-generic
> sudo dpkg --purge linux-headers-4.15.0-136 linux-headers-4.15.0-136-generic

sudo apt-get purge linux-image-4.15.0-136-generic
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Paket »linux-image-4.15.0-136-generic« ist nicht installiert, wird also auch nicht entfernt.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 71 nicht aktualisiert.
sudo dpkg --purge linux-headers-4.15.0-136 linux-headers-4.15.0-136-generic
dpkg: Warnung: Die Anforderung, linux-headers-4.15.0-136 zu entfernen, wird ignoriert; es ist nicht installiert
dpkg: Warnung: Die Anforderung, linux-headers-4.15.0-136-generic zu entfernen, wird ignoriert; es ist nicht installiert
erikro
erikro 02.03.2021 um 14:11:50 Uhr
Goto Top
Moin,

Zitat von @Codehunter:

Zitat von @erikro:

Was sind das denn für "Entwicklertools" und wofür nutzt Du sie?

Im wesentlichen Netbeans und Lazarus. Ich bin kein Kernel-Entwickler und baue auch keine Treiber o.ä.

Braucht keine Kernel-Header.

Ich selbst bin mir da "keiner Schuld bewusst" und brauche die Kernelheader auch nicht.

Regel Nr. 1: Was Du nicht brauchst, wird auch nicht installiert. face-wink

Entschuldigt bitte die blöde Frage, ich bin halt ein gebranntes Kind was das gutgläubige Entfernen von Paketen betrifft die was mit dem Kernel zu tun haben.

Kein Problem.

Die entscheidende Frage für mich ist: Kann das Entfernen der Kernelheader das System beschädigen (insbesondere den nächsten Reboot sabotieren)? Aus den bisherigen Antworten schließe ich mal: Eher nicht.

Auf gar keinen Fall. Wie gesagt: Das sind Sourcen, die beim Kompilieren gebraucht werden und sonst für nichts. Ich installiere die in der Regel auch gar nicht erst. Falls man sie dann doch mal braucht, sind sie ja schnell nachinstalliert.

Komisch ist allerdings, dass Updates gemacht werden für Software, die angeblich gar nicht installiert ist.

Liebe Grüße

Erik
Codehunter
Codehunter 04.03.2021 um 15:31:32 Uhr
Goto Top
Zitat von @erikro:

Komisch ist allerdings, dass Updates gemacht werden für Software, die angeblich gar nicht installiert ist.

Ich denke das liegt am Paketnamen. In der Aktualisierungsverwaltung nennt es sich "linux-4.15.0-136.140" (also das was da kommen soll), in dessen Beschreibung steht "Linux Kernel Headers for Development". Ich dächte eigentlich auch, dass das eigentlich linux-headers-4.15.0-136 heißen müsste. Vielleicht wirds jetzt klarer warum ich Bedenken hab das rauszuwerfen. Nicht dass irgendwo entweder der Paketname oder die -beschreibung faul ist und aus Versehen was ganz anderes gelöscht wird.