Ich möchte LibreOffice deinstallieren. Dieses Programm besteht aus etwa drei Dutzend Modulen. Idealerweise könnten sie mit folgendem entfernt werden:
aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*
aber das scheitert mit
Couldn't find any package whose name or description matched "libreoffice3.6*"
usw.
Wie lösche ich einen Paketsatz nach Muster?
PS: Ich freue mich auch über Antworten mit use dpkg
oder .apt
Antwort1
Verwenden Sie
apt-get
oderapt
, (nichtaptitude
) und verwenden Sie verankerte reguläre Ausdrücke.In einem regulären Ausdruck
.
bedeutet und jedes beliebige Zeichen und*
bedeutet null oder mehr Mal. Der Ausdrucklibreoffice.*
stimmt also mit jedem Paketnamen überein, der die Zeichenfolge gefolgt von einer beliebigen Anzahl von Zeichen enthält . Sie müssen den regulären Ausdruck mit (um den Anfang der Zeichenfolge abzugleichen) oder (um das Ende der Zeichenfolge abzugleichen) oder beidemlibreoffice
verankern , andernfalls wird der reguläre Ausdruck von APT nicht erkannt.^
$
Umgeben Sie den regulären Ausdruck mit einfachen Anführungszeichen, um zu verhindern, dass die Shell das Sternchen interpretiert.
Beispiel:
Um alle Pakete zu entfernen, deren Name mit beginnt libreoffice
, führen Sie Folgendes aus:
sudo apt remove '^libreoffice.*$'
Antwort2
Eine Alternative ist:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 echo
Dadurch werden alle passenden Pakete aufgelistet libreoffice
. Wenn Sie bestätigt haben, dass dies alle sind, die Sie entfernen möchten, führen Sie den folgenden Befehl aus ...mit Vorsicht:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 sudo apt-get purge -y
Die Idee:
- Lassen Sie das System alle installierten Pakete auflisten
- Filtern, um nur die Übereinstimmungen anzuzeigen
libreoffice
- Filtern Sie, um nur die Spalte mit dem Paketnamen anzuzeigen
- Führen Sie den Bereinigungsbefehl für jedes dieser Pakete aus
Antwort3
Aptitude unterstützt globale Muster und weitere ziemlich coole Übereinstimmungen wie diese:
aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus
Dies stimmt mit jedem Paket überein, das in seinem Namen libreoffice
und enthält 3.6
und auch installiert ist (dafür steht das ) ~i
.
Antwort4
Wenn Sie viele Dateien mit demselben Präfix entfernen müssen, finde ich die Klammererweiterung sehr praktisch:
sudo apt remove libreoffice-l10n-{bg,ca,cs,da,de,en-za,es,fr,hu,id,ja,ko,nb,nl,pl,pt,ru,sv,th,tr,uk,vi,zh-cn,zh-tw}
Ich habe diesen Befehl verwendet, um alle Sprachpakete zu entfernen, die ich nie verwende. Ja, mit einem regulären Ausdruck können Sie angeben, welche Sie behalten möchten, und die anderen löschen. Jedenfalls gefällt mir das, weil es leicht zu merken ist und auch mit vielen Bash-Befehlen funktioniert.