Linux programme deinstallieren mit gleichen namen

bywizard

Lieutenant
Registriert
Okt. 2018
Beiträge
537
Guten Tag!

Ich habe eine Frage und zwar wie kann man alle pakete deinstallieren die z.B. cups im namen haben?

786933
 
cups*
Es wird aber wahrscheinlich alles deinstalliert wenn du cups deinstallierst, spätestens aber, wenn du ungenutzte Pakete deinstallieren lässt.
 
Je nach distro und Paketmanager ist das leicht unterschiedlich, es dürfte aber doch mit mit nem Sternchen gehen:
sudo apt remove cups*

Edit: Third!
 
Hängt von deiner Linux Distribution bzw. von deinem Paketmanager.
Bspw mit apt remove cusps* unter ubuntu
 
danke ich verwenden debian und alles hat geklappt
 
Das kommt nicht zuletzt auch auf den Paketmanager an.

Soweit ich das im Kopf habe, matched zumindest apt-get aber auf den Suchstring an JEDER Position des Paketnamens. Das heißt, dass man im worst case eben nicht nur alle "cups......" Pakete entfernt, sondern auch alle Pakete, die was weiß ich "blacupsblub" heißen. Das kann gewollt sein, kann aber auch in die Hose gehen, wenn damit Pakete gematched werden, die nichts mit dem zu tun haben, was man eigentlich deinstallieren wollte.

apt-get remove ^cups

In dieser Form müssten nur die Pakete ausgewählt werden, die mit "cups" beginnen. Den Stern braucht man in dem Falle gar nicht, wenn ich mich nicht täusche.
 
Raijin schrieb:
Soweit ich das im Kopf habe, matched zumindest apt-get aber auf den Suchstring an JEDER Position des Paketnamens.

Nein.
Das wäre dann *suchstring*
Und dann hätte ich schon so oft was deinstalliert.
Ich glaube eher was passiert, und weshalb du das vielleicht meinst, ist dass wohl nicht nur der Name durchsucht wird, sondern auch irgendwelche Tags.
 
install
[..]
If no package matches the given expression and the expression contains one of ".", "?" or "" then it is assumed to be a POSIX regular expression, and it is applied to all package names in the database. Any matches are then installed (or removed). Note that matching is done by substring so "lo.*" matches "how-lo" and "lowest". If this is undesired, anchor the regular expression with a "^" or "$" character, or create a more specific regular expression.
Quelle: apt-get man page

Ich habe gerade nur Zugang zu unserem Firmen-Linux-Server und da will ich jetzt nicht wild Pakete (de)installieren, aber zumindest bei "apt-cache search keyword" verhält es sich genau so. Ob das 1:1 auf apt-get übertragbar ist, kann ich gerade mangels Testsystem nicht sagen. Allerdings muss ich dir dahingehend Recht geben, dass offenbar auch die Beschreibung und etwaige Tags bei apt-cache durchsucht werden - keine Ahnung ob apt-get das auch tut.

Wie auch immer, man sollte das vielleicht im Hinterkopf behalten, dass sich unpräziser regulärer Ausdruck nicht unbedingt so verhält wie man es gerne hätte.
 
@Raijin Du kannst es doch jederzeit ausprobieren, es werden zum einen alle zu entfernenden Pakete angezeigt und ausserdem nochmal nachgefragt
Code:
After this operation, 98.6 MB disk space will be freed.
Do you want to continue? [Y/n] n

Oder machst gleich mit --dry-run
 
apt purge cups* entfernt alle packages die mit cups anfangen
apt purge cups.* wiederrum entfernt auch packages die den suchstring cups irgendwo im dateinamen beinhaltet, z.b. libcups ..

ich würde persönlich jetzt auch nicht mit posix deinstallieren, eher mit dpkg -l | grep cups anzeigen lassen welche packages installiert sind, manuell deinstallieren und vielleicht mit apt autoremove nochmal nicht benötigte packages automatisch deinstallieren lassen.
 
In der Tat, cups* wird anders interpretiert als cups.* obwohl es in der man page anders steht - oder ich lese es falsch. Scheinbar wird cups* intern als ^cups.* interpretiert.

Wie dem auch sei, so oder so sollte man Vorsicht walten lassen, wenn man mit wildcards Pakete (de)installiert, weil das unter Umständen eben nicht unbedingt zu dem gewünschten Ergebnis führt.
 
-Y wäre da tödlich, ansonsten passiert nichts.
Oder fragt er auch mal einfach so nicht nach?
 
Schon, aber man muss dann eben auch ganz genau hinsehen was (de)installiert oder aktualisiert wird und ich gehe jede Wette ein, das 8 von 10 Otto Normals ohne mit der Wimper zu zucken einfach auf y drückt oder gar direkt nur enter für default-y ;)
 
Raijin schrieb:
In der Tat, cups* wird anders interpretiert als cups.* obwohl es in der man page anders steht - oder ich lese es falsch.
Dass sie unterschiedlich interpretiert werden ist (wenn die man-page stimmt) völlig korrekt. Nur ganz anders als oben beschrieben. In der man-page steht jedenfalls, dass das Muster als Posix RegExp interpretiert wird, sobald u.a. ein * drin ist, was in beiden Beispielen so ist. D.h. insbesondere, dass der Stern NICHT als "keins bis mehrere bliebige Zeichen" interpretiert wird wie beim Globbing in einer Shell (denk an "ls -l *.txt" in der bash).

In Posix RegExps steht der Stern für was ganz anderes, nämlich für "das Zeichen unmittelbar davor 0 bis viele Male". Beachte die 0! x* passt auf einen Nullstring, auf x, auf xx, auf xxx usw. Statt des x* kann man auch x{0,} schreiben. Der Punkt "." in Posix RegExps entspricht dem "?" in Globs, also "ein beliebiges Zeichen".

cups* heißt cup und dahinter null bis viele s-Zeichen.
cups.* heißt cups und dahinter null bis viele Male das eine beliebige Zeichen.

Und das wird dann jeweils als Substring auf die Paketnamen gematcht. Sind also verschiedene Dinge. xxxcupxxx passt aufs erste Muster, nicht aber aufs zweite.

DISCLAIMER: Ich habs nicht probiert, aber so stehts in der man-page. :)

Raijin schrieb:
Schon, aber man muss dann eben auch ganz genau hinsehen was (de)installiert oder aktualisiert wird
Bei Angst, sich mit apt-get selbst ins Knie zu schießen, ist die Option -s (für "simulate") nützlich.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Raijin
Zurück
Oben