Я хочу удалить libreoffice. Эта программа состоит из около трех десятков модулей. В идеале их можно удалить с помощью:
aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*
, но это не с
Couldn't find any package whose name or description matched "libreoffice3.6*"
и т. Д.
Как мне удалить набор пакетов по шаблону?
PS: я доволен ответами с использованием dpkg
или apt
, тоже
Использовать apt-get
, нет aptitude
, и используйте регулярные выражения.
В регулярном выражении, .
имейте в виду любой символ, и *
нуль средств или больше раз. Так выражение libreoffice.*
соответствия любое имя пакета, содержащее строку libreoffice
, сопровождаемый любым количеством символов.
Окружите регулярное выражение одинарными кавычками для предотвращения оболочки, интерпретирующей звездочку. (Если Вам назвали файл libreoffice.example
например, в Вашем текущем каталоге, оболочка заменила бы libreoffice.*
с libreoffice.example
, таким образом, необходимо использовать одинарные кавычки для остановки этого поведения.)
Результат:
sudo apt-get remove 'libreoffice.*'
Альтернатива:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 echo
Это перечислит все пакеты, соответствующие libreoffice
. Когда вы подтвердите, что это все, от кого вы хотите избавиться, выполните следующую команду ... с осторожностью :
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 sudo apt-get purge -y
libreoffice
Aptitude поддерживает глобальные шаблоны, и еще одно довольно классное совпадение выглядит так:
aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus
Это будет соответствовать любому пакету с его именами libreoffice
и 3.6
, а также установленному (это что означает ~i
.
Когда вам нужно удалить много файлов с одинаковым префиксом, я нахожу расширение фигурной скобки очень удобным:
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}
Я использовал эту команду, чтобы удалить все языковые пакеты, которые я никогда не использую. Да, с помощью регулярного выражения вы можете указать, какое из них оставить, а остальные удалить. В любом случае, мне это нравится, потому что его легко запомнить, и он также работает со многими командами bash.