Je veux désinstaller libreoffice. Ce programme comprend environ trois douzaines de modules. Idéalement, ils pourraient être supprimés avec:
aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*
mais cela échoue avec
Couldn't find any package whose name or description matched "libreoffice3.6*"
etc.
Comment supprimer un ensemble de packages par modèle?
PS: Je suis heureux des réponses avec dpkg
ou apt
, aussi
Utilisez apt-get
, pas aptitude
, et utilisez des expressions régulières.
Dans une expression régulière, .
signifie n'importe quel caractère et *
signifie zéro fois ou plus. Ainsi, l'expression libreoffice.*
correspond à tout nom de package contenant la chaîne libreoffice
, suivie d'un nombre quelconque de caractères.
Entourez l'expression régulière de guillemets simples pour éviter que le shell interprète l'astérisque. (Si vous aviez un fichier nommé libreoffice.example
par exemple dans votre répertoire actuel, le shell remplacerait libreoffice.*
par libreoffice.example
, vous devez donc utiliser des guillemets simples pour arrêter ce problème.)
Résultat:
Sudo apt-get remove 'libreoffice.*'
Une alternative est:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 echo
Ceci listera tous les paquets correspondant à libreoffice
name__. Lorsque vous avez confirmé que vous souhaitez vous en débarrasser, exécutez la commande suivante ... avec prudence:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 Sudo apt-get purge -y
L'idée:
libreoffice
name__Aptitude supporte les patterns globaux, et un autre match plutôt cool ressemble à ceci:
aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus
Cela correspond à tous les paquets dont le nom est libreoffice
and 3.6
et qui est également installé (c’est ce que signifie ~i
.