O APT (Advanced Package Tool) instala e atualiza software a partir de repositórios de pacotes. No Debian 13 (Trixie), essas fontes de software são definidas em dois formatos: os tradicionais arquivos .list de uma linha e os arquivos .sources no formato deb822, mais recente. Uma instalação nova do Trixie usa o formato deb822 por padrão.

Vale lembrar que um repositório configurado não está necessariamente habilitado, e um repositório habilitado não está necessariamente funcionando. Este guia mostra como listar os repositórios habilitados no seu Debian, localizar os arquivos de configuração que os definem e diagnosticar um pacote que não tem repositório por trás.

A maior parte dos passos também se aplica a Ubuntu, Linux Mint e outras distribuições baseadas em Debian, embora os nomes de arquivo padrão sejam diferentes. Este guia cobre apenas repositórios APT, não remotos Flatpak, canais Snap ou registros de contêineres.

Resposta rápida

Para ver os repositórios APT habilitados no Debian 13, 12 e versões anteriores, execute:

apt-get indextargets --format '$(REPO_URI) $(RELEASE) $(COMPONENT)' 'Created-By: Packages' | sort -u

Não é preciso ser root para rodar esse comando. Ele imprime uma linha por repositório, suíte e componente habilitados.

Exemplo de saída em um Debian 13 com ambiente desktop:

https://deb.debian.org/debian/ trixie contrib
https://deb.debian.org/debian/ trixie main
https://deb.debian.org/debian/ trixie non-free
https://deb.debian.org/debian/ trixie non-free-firmware
https://deb.debian.org/debian/ trixie-updates main
https://dl.google.com/linux/chrome-stable/deb/ stable main
https://download.docker.com/linux/debian/ trixie stable
https://packages.microsoft.com/repos/edge-beta/ stable main
https://repo.protonvpn.com/debian/ stable main
https://security.debian.org/debian-security/ trixie-security main
https://security.debian.org/debian-security/ trixie-security non-free-firmware

O comando lê a configuração já interpretada pelo APT, então funciona tanto para arquivos .list quanto para arquivos .sources. O restante do guia explica outros métodos, como ler os arquivos de origem e o que fazer quando algo parece errado.

Comandos que exigem root: sudo apt update e sudo apt modernize-sources. Todo o resto aqui roda como usuário comum.

Listar os repositórios habilitados com o APT

Ler os arquivos mostra o que está escrito. O APT também pode informar o que ele carregou, e trata os dois formatos de arquivo da mesma forma.

Usar apt-get indextargets

O comando apt-get indextargets é a forma mais direta de listar os repositórios habilitados no Debian e em derivados como o Ubuntu:

apt-get indextargets --format '$(REPO_URI) $(RELEASE) $(COMPONENT)' 'Created-By: Packages' | sort -u

Entendendo as opções:

  • Created-By: Packages limita a saída aos índices de pacotes binários (deb). Sem filtro, a saída também inclui entradas de Contents e Translations.
  • sort -u remove as duplicatas que aparecem quando um repositório serve várias arquiteturas.
  • Para listar repositórios de pacotes-fonte (deb-src), troque o filtro por 'Created-By: Sources'.

Usar apt policy

Outra forma de listar repositórios em sistemas baseados em Debian:

apt policy

Executado sem nome de pacote, ele imprime as fontes de pacotes que o APT usa no momento, com suas prioridades. Esta é a forma moderna de apt-cache policy, e ambas funcionam. Uma entrada tem esta aparência:

Package files:
100 /var/lib/dpkg/status
release a=now
.
.
.
500 https://security.debian.org/debian-security trixie-security/non-free-firmware amd64 Packages
release v=13,o=Debian,a=stable-security,n=trixie-security,l=Debian-Security,c=non-free-firmware,b=amd64
origin security.debian.org
500 https://security.debian.org/debian-security trixie-security/main amd64 Packages
release v=13,o=Debian,a=stable-security,n=trixie-security,l=Debian-Security,c=main,b=amd64
origin security.debian.org
500 https://deb.debian.org/debian trixie-updates/main amd64 Packages
release v=13-updates,o=Debian,a=stable-updates,n=trixie-updates,l=Debian,c=main,b=amd64
origin deb.debian.org
500 https://deb.debian.org/debian trixie/non-free-firmware amd64 Packages
release v=13.7,o=Debian,a=stable,n=trixie,l=Debian,c=non-free-firmware,b=amd64
origin deb.debian.org
500 https://deb.debian.org/debian trixie/non-free amd64 Packages
release v=13.7,o=Debian,a=stable,n=trixie,l=Debian,c=non-free,b=amd64
origin deb.debian.org
500 https://deb.debian.org/debian trixie/contrib amd64 Packages
release v=13.7,o=Debian,a=stable,n=trixie,l=Debian,c=contrib,b=amd64
origin deb.debian.org
500 https://deb.debian.org/debian trixie/main amd64 Packages
release v=13.7,o=Debian,a=stable,n=trixie,l=Debian,c=main,b=amd64
origin deb.debian.org
Pinned packages:

Uma ressalva: apt policy reflete os índices de pacotes que o APT já baixou. Se você acabou de habilitar ou desabilitar uma fonte, rode sudo apt update antes, ou a saída pode não corresponder à sua configuração. Já apt-get indextargets lê a configuração diretamente e não tem essa limitação.

Nota: os dois comandos mostram que uma fonte está habilitada. Eles não mostram que o servidor dela está acessível ou que as assinaturas são válidas. A seção 4 cobre isso.

Localizar os arquivos de configuração de fontes do APT

O APT lê sua lista de repositórios destes locais:

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/*.list
  • /etc/apt/sources.list.d/*.sources

Arquivos em sources.list.d com qualquer outra extensão são ignorados. O APT também ignora nomes de arquivo que contenham caracteres além de letras, dígitos, sublinhados, hífens e pontos.

Padrões do Debian 13

Uma instalação nova do Trixie mantém os repositórios principais do Debian em /etc/apt/sources.list.d/debian.sources. O arquivo /etc/apt/sources.list normalmente contém apenas comentários ou nem existe.

Se você atualizou a partir de uma versão anterior, pode ainda ter um /etc/apt/sources.list tradicional. Os dois formatos funcionam lado a lado.

Para converter arquivos .list legados para deb822, execute:

sudo apt modernize-sources

O comando lista os arquivos que vai converter e pede confirmação antes de alterar qualquer coisa. Ele grava o novo arquivo .sources e faz backup do original, por exemplo como /etc/apt/sources.list.bak.

Mais detalhes sobre a modernização das fontes do APT no Debian estão no link abaixo:

Mostrar linhas que não são comentário

grep -HvE '^[[:space:]]*(#|$)' \
/etc/apt/sources.list \
/etc/apt/sources.list.d/*.list \
/etc/apt/sources.list.d/*.sources 2>/dev/null

Isso imprime todas as linhas que não são vazias nem comentários, prefixadas com o nome do arquivo. Mostra o que está configurado, mas não consegue dizer o que está habilitado em arquivos deb822, porque uma estrofe desabilitada ainda contém linhas que não são comentário. Use as regras da seção 3 ou os comandos do APT da seção de listagem.

Interpretar entradas habilitadas e desabilitadas

Arquivos .list tradicionais

Uma entrada ativa começa com deb ou deb-src. Uma linha que começa com # está desabilitada. Por exemplo:

deb https://deb.debian.org/debian trixie main
# deb https://example.com/debian stable main

A primeira entrada está habilitada; a segunda, não. As entradas podem incluir opções entre colchetes, como a arquitetura e a chave de assinatura:

deb [arch=amd64 signed-by=/usr/share/keyrings/example.gpg] https://example.com/debian stable main

Para listar apenas as linhas ativas em arquivos .list, execute:

grep -hE '^[[:space:]]*deb(-src)?[[:space:]]' \
/etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null

Isso não interpreta arquivos .sources e não verifica se os repositórios funcionam.

Arquivos .sources no formato deb822

Arquivos deb822 usam campos nomeados, e linhas em branco separam as estrofes. Uma estrofe típica tem esta aparência:

Types: deb deb-src
URIs: https://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Tenha estas regras em mente:

  • Uma estrofe é habilitada por padrão. Ela só fica desabilitada se contiver um campo Enabled com valor falso, como Enabled: no. Nomes de campo e valores não diferenciam maiúsculas de minúsculas (case-insensitive no original), então enabled: No também desabilita uma estrofe.
  • Types pode listar tanto deb quanto deb-src. Repositórios de código-fonte ficam habilitados se deb-src aparecer ali.
  • URIs, Suites e Components podem conter vários valores separados por espaço, então uma única estrofe pode definir muitos repositórios.
  • Signed-By pode ser um caminho para um arquivo de chaveiro ou um bloco de chave embutido.
  • Um arquivo pode conter várias estrofes, e cada uma é habilitada ou desabilitada de forma independente.

Para imprimir apenas as estrofes habilitadas dos seus arquivos .sources, execute:

for f in /etc/apt/sources.list.d/*.sources; do
[ -f "$f" ] || continue
printf '### %s\n' "$f"
awk -v RS= '
tolower($0) ~ /(^|\n)types:/ &&
tolower($0) !~ /(^|\n)enabled:[ \t]*(no|false|0)[ \t]*(\n|$)/ {
print $0 "\n"
}' "$f"
done

O filtro imprime cada estrofe que tem um campo Types e nenhum valor falso em Enabled. É uma conveniência para leitura, e os comandos do APT da seção de listagem continuam sendo a resposta mais confiável.

Para encontrar estrofes explicitamente desabilitadas, execute:

grep -n -i 'Enabled:' /etc/apt/sources.list.d/*.sources

Confira a estrofe ao redor para ver a qual repositório cada resultado pertence.

Verificar se os repositórios funcionam

Execute:

sudo apt update

O APT tenta atualizar os índices de pacotes a partir de todas as fontes habilitadas. Revise a saída em busca de erros como:

  • 404 Not Found: o caminho ou a suíte do repositório pode estar incorreto ou não existir mais.
  • NO_PUBKEY: o APT não encontra a chave pública necessária para verificar o repositório.
  • The repository is not signed: o APT não consegue verificar os metadados do repositório como exigido.
  • Erros de conexão ou DNS: o APT não consegue alcançar o servidor do repositório.

Leia também os avisos e notificações, não só os erros. Eles costumam revelar problemas de configuração:

  • Target Packages ... is configured multiple times: o mesmo repositório está definido em mais de um arquivo. Remova a duplicata.
  • Skipping acquire of configured file ... doesn't support architecture: o repositório não fornece pacotes para uma das arquiteturas configuradas.
  • Ignoring file ... invalid filename extension: o APT ignorou um arquivo em sources.list.d por causa do nome.

Uma atualização limpa significa que o APT conseguiu atualizar os índices que processou. Isso não garante que um pacote específico esteja disponível.

Nunca corrija um erro de assinatura desabilitando a autenticação. Verifique a URL do repositório e siga as instruções oficiais do mantenedor do repositório para instalar a chave de assinatura.

Diagnosticar um pacote sem repositório

Use apt-cache policy para ver quais versões de um pacote o APT pode instalar e de onde elas vêm:

apt-cache policy firefox-esr

Se a única fonte listada for a seguinte, o APT está mostrando o banco de dados de pacotes local em vez de um repositório:

100 /var/lib/dpkg/status

Isso não significa automaticamente que um repositório está faltando ou quebrado. Significa que o APT não tem, nos índices atuais, uma versão daquele pacote vinda de repositório.

Causas comuns incluem:

  • O pacote foi instalado a partir de um arquivo .deb avulso, e nenhum repositório foi adicionado.
  • O pacote adicionou seu próprio arquivo de fonte durante a instalação, mas esse arquivo foi removido, desabilitado ou renomeado depois.
  • Existe uma entrada de fonte, mas ela está comentada, tem Enabled: no ou aponta para uma suíte que não existe mais.
  • O último apt update falhou para aquele repositório, então o índice nunca foi baixado.
  • O pacote veio de um repositório que foi removido ou desabilitado, por exemplo durante uma atualização de versão.

Para encontrar todos os pacotes instalados que nenhum repositório fornece no momento, execute:

apt list --installed 2>/dev/null | grep '\[installed,local\]'

Pacotes marcados como local não têm versão vinda de repositório nos índices atuais do APT.

Exemplo: Microsoft Edge Beta

Suponha que o Microsoft Edge Beta esteja instalado, mas apt-cache policy mostre apenas a versão local:

microsoft-edge-beta:
Installed: 145.0.3800.13-1
Candidate: 145.0.3800.13-1
Version table:
*** 145.0.3800.13-1 100
100 /var/lib/dpkg/status

Pacotes de fabricantes como Edge e Chrome costumam ser instalados a partir de um .deb baixado. Muitos deles adicionam sua própria fonte APT durante a instalação, embora o comportamento varie conforme o fabricante e a versão. Se esse arquivo de fonte estiver ausente ou desabilitado, você obtém exatamente essa saída.

Passo 1: encontrar a entrada de fonte existente

grep -RniE 'microsoft|edge' \
/etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null

Inspecione os resultados com cuidado. Um nome de arquivo contendo edge não prova que ele contém um repositório Edge ativo. Por exemplo, um arquivo pode conter apenas esta linha comentada:

#deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main

Essa entrada está desabilitada e aponta para o Google Chrome, não para o Microsoft Edge.

Passo 2: verificar o repositório e a chave de assinatura

Se não existir nenhuma entrada ativa do Edge Beta, consulte as instruções oficiais atuais da Microsoft para instalação no Linux antes de adicionar uma. Verifique a URL exata do repositório, a suíte, a arquitetura e as instruções da chave de assinatura.

Se uma entrada existente apontar para um arquivo de chaveiro ausente, corrija o caminho ou instale a chave conforme essas instruções descrevem. Não adivinhe o nome do arquivo de chave nem contorne a verificação de assinatura.

Passo 3: atualizar o APT e verificar de novo

sudo apt update
apt-cache policy microsoft-edge-beta

Revise a saída da atualização em busca de erros de repositório e de assinatura, depois verifique se uma versão vinda de repositório aparece na lista. Se só aparecer /var/lib/dpkg/status, o APT continua sem repositório para aquele pacote.

Vale notar que um aplicativo instalado não prova que o repositório dele está habilitado ou funcionando. Verifique a entrada de fonte, atualize os índices e inspecione a saída do policy.

Referência rápida

Conclusão

Para listar os repositórios habilitados no Debian 13, comece por apt-get indextargets ou apt policy. Ambos informam o que o APT realmente carregou dos seus arquivos .list e .sources, o que é mais confiável do que ler os arquivos por conta própria. Use /etc/apt/sources.list e os arquivos em /etc/apt/sources.list.d/ para descobrir onde cada fonte de pacotes está definida, e aplique as regras de habilitação corretas para cada formato.

Depois, rode sudo apt update e leia tanto os erros quanto os avisos. Se um pacote específico não tem versão vinda de repositório, verifique o arquivo de fonte, a chave de assinatura e se ele foi instalado a partir de um .deb avulso. Se você ainda tem arquivos .list legados, considere rodar sudo apt modernize-sources para que sua lista de repositórios APT use um único formato consistente.