Você está preparando uma atualização no Debian ou Ubuntu, e então nota que um pacote oferece uma versão inesperada. Antes de executar apt upgrade ou forçar uma versão específica, apt-cache policy mostra a versão instalada, a candidata e os repositórios que a oferecem.
O objetivo é decidir com informações visíveis. Você vai ler a configuração do APT, comparar as versões de um pacote, simular a instalação e parar se o repositório ou as dependências não corresponderem à mudança esperada.
Leia os repositórios antes de olhar para um pacote
Uma versão candidata vem das fontes APT ativas. Em Debian recente, elas podem ser descritas em /etc/apt/sources.list, em arquivos .list ou em arquivos .sources localizados em /etc/apt/sources.list.d/. Um repositório de teste, um espelho corporativo ou uma fonte adicionada para um software pode modificar a escolha do APT.
grep -R --line-number --no-messages
-e '^deb ' -e '^Types:' -e '^URIs:' -e '^Suites:'
/etc/apt/sources.list /etc/apt/sources.list.d/
Revise a URL, a versão do Debian ou Ubuntu e o componente indicado. Não adicione uma fonte encontrada em um fórum para obter uma versão mais recente. Se os arquivos mudaram desde a última atualização dos índices, execute sudo apt update apenas após ter validado esse perímetro.
Comparar a versão instalada, candidata e disponível
Escolha um pacote que esteja realmente presente em seus repositórios, por exemplo curl. O comando a seguir não altera nada. Ele exibe a versão instalada, a versão candidata e uma tabela de prioridades por repositório.
apt-cache policy curl
apt-cache madison curl
apt list --upgradable
No apt-cache policy, Installed designa a versão já instalada. Candidate é a que o APT escolheria com sua configuração atual. As linhas da tabela indicam a origem e a prioridade de cada versão conhecida. apt-cache madison fornece uma visão curta das versões e de seus arquivos. O último comando serve para verificar se o pacote realmente está entre as atualizações propostas.
Uma candidata diferente não prova que uma atualização é apropriada. Uma versão pode vir de uma suíte de segurança, de um backport ou de um repositório de terceiros. Para confirmar o ambiente antes de uma intervenção mais ampla, o guia Versão do Debian: os comandos confiáveis para verificar antes de uma atualização ajuda a revisar a distribuição e seu número de versão.
Simular a instalação antes de escolher uma versão
Quando a candidata parece coerente, primeiro solicite uma simulação ao APT. A opção -s lista os pacotes a serem instalados, atualizados ou removidos sem escrever no sistema.
sudo apt-get -s install curl
sudo apt-get -s install curl=VERSAO_LIDA_NO_MADISON
Substitua VERSAO_LIDA_NO_MADISON por uma versão exibida pela sua própria máquina. A simulação deve permanecer limitada ao pacote previsto e a dependências esperadas. Se ela sugerir remover um pacote de produção, mudar de suíte Debian ou instalar uma longa cadeia inesperada, não execute o comando real.
O comando real mantém a mesma sintaxe, sem -s. Em um servidor, eu escolheria uma janela de manutenção quando o pacote afetar um serviço de rede, uma biblioteca usada por vários aplicativos ou o núcleo. A lista APT não diz por si só se será necessário um reinício ou um teste de aplicativo.
Quando a candidata não corresponde à mudança esperada
Evite corrigir esse caso com um apt install pacote=versao lançado aleatoriamente. Reexamine a saída de apt-cache policy, identifique o repositório que oferece a candidata e verifique os arquivos de preferências APT se sua máquina os utilizar.
grep -R --line-number --no-messages . /etc/apt/preferences /etc/apt/preferences.d/
apt-cache policy curl
apt-cache showpkg curl
Uma regra de pinning pode alterar a prioridade de um arquivo. Um pacote mantido em hold também permanece fora de uma atualização normal. O assunto é distinto da leitura de uma candidata, mas bloquear a atualização de um pacote Debian e depois remover o hold explica como controlar esse bloqueio sem confundir um hold com uma preferência APT.
Para um arquivo .deb baixado localmente, passe em vez disso por apt install ./pacote.deb quando os repositórios estiverem acessíveis. O APT poderá então resolver as dependências. O guia Dpkg no Linux: instalar um pacote .deb sem bloquear o APT por trás cobre esse caso separadamente.
apt-cache policy é um comando de leitura. Mantenha essa etapa antes de cada mudança específica: repositório legível, candidata identificada, simulação limpa e depois apenas a instalação. Se a origem da versão permanecer ambígua, corrija primeiro as fontes ou as preferências APT.
A página de manual do Debian apt-cache(8) detalha os subcomandos e as prioridades exibidas pela política APT.