Como posso listar todos os pacotes que instalei de um determinado repositório?

48

Como posso listar todos os pacotes que instalei de um repositório específico?

Como posso listar todos os pacotes instalados que não estão disponíveis nos arquivos principais do Ubuntu, e também ver de quais repositórios eles vieram? (Se eu soubesse a resposta a essa pergunta, eu poderia encontrar essa lista para um nome de PPA específico para descobrir a resposta à minha primeira pergunta.)

    
por Marius Gedminas 11.10.2010 / 15:15

5 respostas

23

Expanda o item "Software Instalado" no Ubuntu Software Center. Você verá uma lista de todos os diferentes repositórios que você ativou. Clicar no repositório mostrará os pacotes que você instalou de cada um.

    
por andrewsomething 11.10.2010 / 17:05
24

Parece não haver registro da origem de um pacote instalado .

Se você está bem com a obtenção do local de onde um pacote do mesmo nome seria baixado, isso está disponível através de %código%. O seguinte script (bastante feio) faz o truque para mim:

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
  | fgrep ':install ok installed' \
  | cut -d: -f1 \
  | (while read pkg; do 
       inst_version=$(apt-cache policy $pkg \
                                | fgrep Installed: \
                                | awk '{ print  }'); 
       origin=$(apt-cache policy "$pkg" \
                          | fgrep " *** ${inst_version}" -C1 \
                          | tail -n 1 \
                          | cut -c12-); 
       echo $pkg $origin; 
     done)

Note que é bastante frágil, pois faz suposições sobre a saída de apt-cache policy , que pode mudar entre as versões ...

    
por Riccardo Murri 11.10.2010 / 20:41
21

Abra o Gerenciador de Pacotes Synaptic e clique no botão "Origem" na parte inferior da barra lateral esquerda. Ele irá listar suas fontes. Selecione uma fonte para ver os pacotes disponíveis / instalados.

    
por lovinglinux 11.10.2010 / 15:23
4

Este script lista os pacotes que estão instalados e disponíveis no PPA:

#!/bin/sh
# Give PPA name as an argument, e.g. ppa:oibaf/graphics-drivers

name1="$(echo ""|cut -d: -f2|cut -d/ -f1)"
name2="$(echo ""|cut -d/ -f2)"

awk ' == "Package:" { if (a[]++ == 0) print ; }' \
/var/lib/apt/lists/*"$name1"*"$name2"*Packages |
xargs dpkg-query -W -f='${Status} ${Package}\n' 2>/dev/null  | awk '/^[^ ]+ ok installed/{print }'

Eu apliquei este .

BTW Como para remover o PPA do uso, use o programa ppa-purge; Eu criei uma versão melhorada do aqui .

    
por jarno 09.01.2016 / 23:33
3

Em Quantal (12.10), o espaço na linha de origem precisa ser removido.

LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
 | fgrep ':install ok installed' \
 | cut -d: -f1 \
 | (while read pkg; do 
   inst_version=$(apt-cache policy $pkg \
                            | fgrep Installed: \
                            | cut -d: -f2-); 
   origin=$(apt-cache policy "$pkg" \
                      | fgrep " ***${inst_version}" -C1 \
                      | tail -n 1 \
                      | cut -c12-); 
   echo $pkg $origin; 
 done)
    
por Graham Dunn 12.03.2013 / 14:16