Quero desinstalar o libreoffice. Este programa consiste em cerca de três dezenas de módulos. Idealmente, eles poderiam ser removidos com:
aptitude remove libreoffice3.6* libreoffice-debian-menus libobasis3.6-*
mas isso falha com
Couldn't find any package whose name or description matched "libreoffice3.6*"
etc.
Como excluo um conjunto de pacotes por padrão?
PS: Estou feliz com as respostas com uso dpkg
ou apt
também
Responder1
Use
apt-get
ouapt
, (nãoaptitude
) e use expressões regulares ancoradas.Em uma expressão regular,
.
significa qualquer caractere e*
significa zero ou mais vezes. Portanto, a expressãolibreoffice.*
corresponde a qualquer nome de pacote que contenha a stringlibreoffice
, seguida por qualquer número de caracteres. Você deve ancorar a expressão regular com^
(para corresponder ao início da string) ou$
(para corresponder ao final da string) ou ambos, caso contrário, a expressão regular não será reconhecida pelo APT.Coloque a expressão regular entre aspas simples para evitar que o shell interprete o asterisco.
Exemplo:
Para remover todos os pacotes com um nome que comece com libreoffice
, execute:
sudo apt remove '^libreoffice.*$'
Responder2
Uma alternativa é:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 echo
Isso listará todos os pacotes correspondentes libreoffice
. Quando você confirmar que são todos eles que você deseja se livrar, execute o seguinte comando...com cuidado:
dpkg -l | grep libreoffice | awk '{print $2}' | xargs -n1 sudo apt-get purge -y
A ideia:
- Faça com que o sistema liste todos os pacotes instalados
- Filtre para mostrar apenas os que correspondem
libreoffice
- Filtre para mostrar apenas a coluna com o nome do pacote
- Execute o comando purge em cada um desses pacotes
Responder3
Aptitude tem suporte para padrões globais, e outras combinações bem legais como esta:
aptitude remove '?and(?name(libreoffice), name(3.6), ~i)' libreoffice-debian-menus
Isso corresponderá a qualquer pacote que tenha em seu nome libreoffice
e 3.6
também esteja instalado (é isso que ~i
significa.
Responder4
Quando você precisa remover muitos arquivos com o mesmo prefixo, acho a expansão de chaves muito útil:
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}
Usei este comando para remover todos os pacotes de idiomas que nunca uso. Sim, com uma regex você pode saber qual manter e excluir as outras. De qualquer forma, gosto disso porque é fácil de lembrar e também funciona com muitos comandos bash.