Zypper: Como listar pacotes instalados que não estão em um repositório

4

Em um sistema que usa o Zypper para gerenciamento de pacotes (openSuse, no meu caso), como alguém pode obter uma lista de todos os pacotes instalados que não estão associados a um repositório atualmente habilitado?

Problema real: Ao atualizar distribuições (por exemplo, do openSuse 12.1 para 12.2), desabilito todos os repositórios não padrão que eu habilitei. Muitas vezes, só adicionei-os para obter uma nova versão de uma ferramenta específica, mas essa versão mais recente é incluída por padrão na distribuição atualizada. Às vezes, porém, pacotes adicionais foram instalados a partir do repositório, mas não sei como detectá-los. O sistema funciona, mas esses pacotes nunca serão atualizados desde que eu removi o repositório de fornecimento após a atualização.

    
por David B. 11.12.2012 / 21:32

2 respostas

3

É um pouco sobre brincar com consultas zypper.

1) Encontre os pacotes instalados, que vêm de repositórios de distribuição que não são opensuse:

zypper search -s | grep "i |" | grep -vi "| patch" | grep -vi "| opensuse" > list1.txt

2) Encontre pacotes, que estão disponíveis em repositórios opensuse (não importando se estão instalados ou não):

zypper search -s | grep "v |" | grep -vi "| patch" | grep -i "| opensuse" > list2.txt

3) Identifique os pacotes da lista1, que não estão representados na lista2:

cat list1.txt | cut -d " " -f3 | cut -d " " -f1 | while read line
do
    if [ "$(cat list2.txt | grep -i $line)" = "" ]; then
        echo "$line"
    fi
done

Isso deve resolver o caso (testado no openSUSE 11.3).

    
por 12.12.2012 / 16:02
1

A opção pa é provavelmente mais apropriada:

zypper pa -i

lista todos os pacotes instalados e suas versões e repositórios disponíveis. Você pode escolher listar apenas os pacotes pertencentes a um determinado repositório com o -r flag:

zypper pa -i -r openSUSE-12.1

a partir daí, você pode usar as estratégias propostas pelo @ Northestopheles para encontrar as que correspondem às suas necessidades.

    
por 11.12.2015 / 12:50

Tags