Como listar todos os pacotes em um repositório no Ubuntu, Debian ou Linux Mint [APT]

22 de novembro de 2018

Este artigo explica como listar todos os pacotes disponíveis em um repositório Ubuntu, Linux Mint ou Debian (instalado e disponível para instalação), seja um repositório oficial ou uma fonte de terceiros como um PPA e assim por diante.

Abaixo você encontrará 2 maneiras de listar pacotes de um repositório: usando uma GUI ou a partir da linha de comando.

Da mesma série:

Liste todos os pacotes em um repositório Debian, Ubuntu ou Linux Mint usando uma GUI

Se você deseja listar todos os pacotes em um repositório em sua área de trabalho, você pode usar o Gerenciador de Pacotes Synaptic.

Synaptic é um aplicativo gráfico de gerenciamento de pacotes para APT (sendo o APT o principal gerenciador de pacotes de linha de comando do Debian e seus derivados).

Se você não tiver o Synaptic instalado, poderá instalá-lo no Debian, Ubuntu e qualquer distribuição Linux baseada em Debian ou Ubuntu, incluindo elementaryOS, Linux Mint e assim por diante, usando este comando:

Comandos para usar no terminal

sudo apt install synaptic

Para listar todos os pacotes em um repositório de software específico usando o Synaptic, inicie o aplicativo e clique em Origin no canto inferior esquerdo de sua janela. Em seguida, selecione o repositório para o qual deseja listar todos os pacotes disponíveis (instalados e disponíveis para instalação) na lista que é exibida no lado esquerdo do Synaptic Package Manager.

Por exemplo, aqui está o Synaptic mostrando todos os pacotes disponíveis no repositório do Google, listando o Google Chrome estável, beta e instável, bem como Google Earth Pro e EC:

Lista sináptica de todos os pacotes em um repositório no Ubuntu ou Debian

Como você pode ver, todas as fontes de software estão listadas aqui, incluindo os repositórios oficiais.

Repositórios de PPA do Launchpad também são suportados. Seu nome começa com LP-PPA, seguido pelo nome real do PPA. O Synaptic lista 2 entradas para cada PPA - certifique-se de selecionar a entrada PPA que termina com /ubuntu-codename, por exemplo /bionic, /cosmic, etc. A entrada que termina com /now não lista todos os pacotes disponíveis no PPA.

Esta é uma captura de tela mostrando todos os pacotes disponíveis no Ubuntu Graphics Drivers PPA (para Ubuntu 18.10 Cosmic Cuttlefish, já que é o que estou usando), inclusive mostrando quais estão instalados no meu sistema:

Lista sináptica de todos os pacotes em um repositório

Não sei por que, mas alguns pacotes são listados várias vezes para fontes PPA (e apenas para repositórios PPA). Isso é apenas uma coisa de exibição e não interrompe nenhuma funcionalidade.

Liste todos os pacotes em um repositório no Ubuntu, Debian ou Linux Mint a partir da linha de comando

Listar todos os pacotes em um repositório da linha de comando no Ubuntu, Debian ou Linux Mint é um pouco complicado, mas ainda assim muito fácil de fazer.

Existem várias maneiras de fazer isso a partir do comando, mas listarei apenas uma. O comando para listar todos os pacotes disponíveis em repository-name é o seguinte:

Comandos para usar no terminal

grep ^Package /var/lib/apt/lists/repository-name*_Packages | awk '{print $2}' | sort -u

Explicarei mais tarde como descobrir o nome do repositório de /var/list/apt/lists e como usá-lo. Antes disso, explicarei o que este comando faz:

  • grep ^Package ... procura por linhas começando com ^Package no arquivo /var/lib/apt/lists/*_Packages
  • awk '{print $2}' imprime a segunda coluna para cada linha (portanto, filtra tudo, exceto o nome do pacote)
  • sort -u classifica as linhas e produz apenas linhas exclusivas (remove duplicatas)

A primeira coisa que você precisa fazer é encontrar o nome do arquivo do repositório *_Packages de /var/lib/apt/lists/. Você pode listar todos os arquivos do repositório _Packages disponíveis em /var/lib/apt/lists/ usando um simples ls:

Comandos para usar no terminal

ls /var/lib/apt/lists/*_Packages

Como os resultados podem ser muito longos, você pode executar a saída do comando por meio de more para facilitar a leitura:

Comandos para usar no terminal

ls /var/lib/apt/lists/*_Packages | more

Se você souber parte do nome do repositório (estou usando KEYWORD no comando abaixo como o nome), pode filtrar os resultados ls usando grep, assim:

Comandos para usar no terminal

ls /var/lib/apt/lists/*_Packages | grep KEYWORD

Por exemplo, digamos que você deseja listar todos os pacotes no repositório Tor oficial e sabe que o nome do repositório deve conter tor. Nesse caso, você usaria este comando para descobrir o nome de arquivo _Packages de /var/lib/apt/lists/

Comandos para usar no terminal

ls /var/lib/apt/lists/*_Packages | grep tor

Para consultas curtas, alguns repositórios não relacionados podem ser exibidos, mas ainda é mais fácil ver o que você está procurando usando grep do que listar todos os arquivos _Packages dos repositórios.

Agora que você conhece o nome do arquivo _Packages, pode listar todos os pacotes disponíveis nesse repositório emitindo este comando:

Comandos para usar no terminal

grep ^Package /var/lib/apt/lists/some-repository-amd64_Packages | awk '{print $2}' | sort -u

Use o arquivo que contém a arquitetura para a qual você deseja listar todos os pacotes disponíveis naquele repositório. O exemplo acima é para 64 bits (amd64), mas você pode usar i386 para 32 bits, etc.

Você não precisa do nome de arquivo _Packages do repositório completo. De volta ao meu exemplo de repositório Tor, o nome de arquivo _Packages para Tor é deb.torproject.org_torproject.org_dists_cosmic_main_binary-amd64_Packages. Nesse caso, você poderia usar deb.torproject seguido por *_Packages para simplificar as coisas, assim:

Comandos para usar no terminal

grep ^Package /var/lib/apt/lists/deb.torproject*_Packages | awk '{print $2}' | sort -u

O que resulta no seguinte:

deb.torproject.org-keyring
tor
tor-geoipdb

Outro exemplo. Digamos que você queira ver todos os pacotes disponíveis no PPa Oracle Java 11 do Linux Uprising (ppa:linuxuprising/java). Você pode listá-los usando:

Comandos para usar no terminal

grep ^Package /var/lib/apt/lists/ppa.launchpad.net_linuxuprising_java*_Packages | awk '{print $2}' | sort -u

O que resulta em:

oracle-java11-installer
oracle-java11-set-default

Para usar isso com outros repositórios PPA, substitua linuxuprising pela primeira parte do nome do PPA e java pela segunda parte do nome do PPA, e o comando listará todos os pacotes desse PPA (instalados e não instalados).

Você também pode listar todos os pacotes disponíveis em todos os repositórios PPA que você adicionou ao seu sistema, usando:

Comandos para usar no terminal

grep ^Package /var/lib/apt/lists/ppa.launchpad.net*_Packages | awk '{print $2}' | sort -u

Para fácil acesso, você pode marcar este comando usando gerenciador de marcadores de comandos do marcador (embora seja usado principalmente para pesquisa, HSTR pode marcar comandos também).

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog

Confira a versão original desse post em inglês:

How To List All Packages In A Repository On Ubuntu, Debian Or Linux Mint [APT]
Propaganda
Propaganda