kB schrieb:
Mein von Dir zitierter Befehl war gar nicht als Konkurrenz zu dem von Dir ursprünglich vorgeschlagenen Befehl gemeint, sondern Teil einer konkreten Frage an Dich, welche Du leider nicht beantwortet hast.
Welche deiner Fragen habe ich denn nicht beantwortet?
Wieso kann man damit nicht arbeiten?
habe ich beantwortet: Das habe ich so nie gesagt.
Was zeigt dieser Befehl bei Dir und welche Pakete vermisst Du in der Liste dieses Befehls?
habe ich auch beantwortet: Es fehlen die Source-Pakete. Darüber hinaus kann es z.B. auch linux-signature-nvidia
-Pakete geben, wenn eine nvidia-graka vorhanden ist.
Ich habe in meinem Beitrag auch dargelegt, dass dies noch nicht die vollständige Lösung ist und was noch zusätzlich geleistet werden müsste.
Ja und dennoch ist dein Befehl jetzt schon für einen Anfänger schwer lesbar - vervollständige diesen noch und ein Anfänger wird damit genauso wenig anfangen können.
Und ja, wenn man meinen Befehl in Konkurrenz zu Deinem setzen möchte, dann finde ich meinen besser als Deinen, weil:
Statt bei Dir awk und grep und sed verwende ich nur eines, nämlich grep.
Ich benötige nicht wie Du komplizierte reguläre Ausdrücke.
Wie gesagt, dann mach deinen Befehl mal vollständig und du muss mindestens noch mal grep
(oder wieder Regex) verwenden.
Darüber hinaus habe ich auch schon erläutert, dass der Grundgedanke des Artikels niemals war, dass ein Anfänger dies unbedingt im Detail verstehen muss.
Kernel-Source-Pakete sind kein Thema für Einsteiger, an die sich der Artikel richtet.
Im Artikel geht es um installierte alte Kernel, die man los werden möchte und überhaupt nicht um Source.
Wenn Kernel-Source-Pakete installiert sind, dann hat man das manuell und bewusst gemacht und nicht automatisch im Zuge einer Aktualisierung. Manuell installiertes würde ich aber nicht automatisch entfernen lassen wollen.
Es ist daher besser, in Bezug auf diesen Artikel Kernel-Source ganz zu ignorieren.
Ich muss doch erst mal davon ausgehen, dass sich meine Vorredner bei diesem dynamisch gewachsenen Beitrag durchaus was gedacht haben und dies aus gutem Grund so gemacht haben. Ich habe lediglich die vorhandene Version korrigiert.
Darüber hinaus sagte ich ja auch nicht das meine Version perfekt war - sonst hätte ich einfach geändert und nicht gefragt, ob es Einwände gibt.
Zurück zum Thema: Wenn du nun sagst, man solle die Source-Pakete nicht berücksichtigen, dann stimmt deine Aussage schon nicht mehr:
- Mein Programm ist einfacher lesbar als Deines.
Denn der Regex kann in dem Fall entfallen. Es bleibt nur noch:
| dpkg -l "linux-[ih]*" | awk '$1 == "ii" {print $2}' | grep -v "$(uname -r)"
|
Trotz awk
& grep
ist dies imho nicht nur leichter lesbar als deines, sondern ist darüber hinaus auch schon fertig. Du hingegen musst immer noch die aktuellen Kernel ausblenden und noch aus der Zeile
ii linux-image-5.10.0-21-amd64 5.10.162-1 amd64 Linux 5.10 for 64-bit PCs (signed)
die Paketnamen extrahieren.
Gruß Thomas