Usando o zypper, como posso remover todos os pacotes instalados de um repositório específico?

10

Digamos que adicionei um repositório usando zypper ar. Depois, instalei vários pacotes desse repositório, mas agora quero remover todos eles.

Existe um comando que me permita remover todos os pacotes que instalei apenas desse repositório específico?

Trent Bing
fonte

Respostas:

7

Eu acho que não existe esse comando. Você pode listar pacotes de repositório específico:

zypper search --installed-only --repo devel:tools

ou todos os pacotes órfãos, se você já removeu esse repositório:

zypper packages --orphaned

Depois, você pode tentar cutempacotar nomes da saída e passá-los para zypper removese valer a pena.

Marcin
fonte
Meu sistema openSuSE 12.3 não tem a --orphanedopção, mas isso pode funcionar:: zypper packages -i -Rlista o pacote instalado na ordem inversa do repositório.
Jeroen Wiert Pluimers
2
--orphanedfoi adicionado no zypper 1.9.2 ( github.com/openSUSE/zypper/issues/34 )
marcin
1

Você pode usar uma combinação de zypper search, awke xargspara remover todos os pacotes de um repositório. Por exemplo:

zypper se --repo openSUSE-Tumbleweed-Debug --installed | awk '/^i(\+|\s)/ {print $3}' | xargs sudo zypper rm
sebix
fonte
awk '/^i(\+|\s)/ {print $3}'para coincidir com todos os pacotes instalados (i ou i +)
Mesco
O @ zesper Meses em si só deve imprimir pacotes instalados ao usá-lo --installed.
sebix
certo, usando -iou --installed-only. Mas também procurei i e i + no começo para pular as primeiras linhas ( Loading repository data...). Talvez há melhores métodos, para pular primeiro 5 linhas, mas se você já usa regex ...;)
Mesco
talvez eu esteja usando a versão diferente do zypper (1.14.4), mas o responsável diz que o pedido deve ser se [options] [query]assim para que sua solução não funcione.
Mesco
Ah, agora entendo sua preocupação. Eu atualizei a resposta. Sobre a sintaxe de pesquisa: Eu só uso opções e nenhuma consulta, portanto, a ordem está correta, eu acho.
precisa saber é