Como descubro de qual repositório um pacote vem?

105

Existe algum método ou comando que possa dizer de qual repositório um pacote está vindo?

    
por dfme 20.10.2010 / 22:43
fonte

6 respostas

77

Comandos necessários:

  • dpkg -s <package> - permite que você encontrar a versão desse você instalou. ( source )
  • apt-cache showpkg <package> - será mostra uma lista de versões do pacote disponível. Para cada versão, a fonte do pacote, no forma de um nome de arquivo de índice, será dado.

Se você quiser encontrar a origem do pacote atualmente instalado, precisará da saída de dpkg -s <package> . Caso contrário, você pode simplesmente ver a saída da versão mais recente em apt-cache showpkg <package> .

Exemplo:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

A partir do primeiro comando, posso ver que o Liferea versão 1.6.2-1ubuntu6 está instalado. No segundo comando, posso ver que essa versão está listada em /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages .

Sem muito esforço, posso deduzir que a linha de origem contém archive.ubuntu.com , ubuntu , lucid e main .

E, com certeza, meu /etc/apt/sources.list contém a seguinte linha.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse
    
por mac9416 20.10.2010 / 23:49
fonte
77

Use o seguinte comando. Tem melhor saída:

apt-cache policy <Package Name>

Para o Ubuntu 16.04 e versões posteriores, há uma maneira mais curta de fazer isso:

apt policy <Package Name>
    
por SuB 20.09.2013 / 08:21
fonte
4

Infelizmente, essas informações não são registradas durante a instalação do pacote. Você pode fazer um palpite decente se o repositório ainda estiver na lista de fontes e o repositório ainda tiver o pacote:

grep -l PKG /var/lib/apt/lists/*

Mesmo o synaptic não pode dizer se você desabilitou o repositório e atualizou.

    
por kanaka 20.10.2010 / 23:37
fonte
4
sudo grep *packagename* /var/lib/apt/lists/* | grep "Filename:"

source

    
por sBlatt 20.10.2010 / 23:29
fonte
2

apt no Ubuntu 16.04 +

Além dos parâmetros apt-cache como policy , showpkg e show , agora temos um parâmetro mais simples, fácil de lembrar, comando: apt (não confunda com o clássico apt-* ):

apt policy <package> 

ou a alternativa com mais informações apt show <package> , linha começando com "APT-Sources:".

Descrição: Este pacote fornece ferramentas de linha de comando para pesquisar e gerenciar, além de consultar informações sobre pacotes, como um acesso de baixo nível a todos os recursos da biblioteca libapt-pkg. Estes incluem: apt-get , apt-cache , apt-cdrom , apt-config , apt-key .

Comandos básicos de apt --help

Outros também são fáceis de lembrar:

  • list - lista pacotes baseados em nomes de pacotes
  • search - pesquisa nas descrições de pacotes
  • show - mostrar detalhes do pacote
  • update - atualize a lista de pacotes disponíveis
  • install - instalar pacotes
  • remove - remove pacotes
  • upgrade - atualize o sistema instalando / atualizando pacotes
  • full-upgrade - atualize o sistema removendo / instalando / atualizando pacotes
  • edit-sources - edite o arquivo de informações de origem
por Pablo Bianchi 01.06.2017 / 21:27
fonte
0

Isso é um pouco mais preciso:

apt-cache show <packagename> | grep "Version:"

A versão mais recente geralmente será instalada, a menos que você tenha definido o apt-pinning ou instale explicitamente uma versão específica.

    
por mchid 15.03.2015 / 07:02
fonte