apt update falha: mudar um Debian antigo para o arquivo
Depois do fim do suporte de uma versão do Debian, o apt update para com um erro 404. Veja como mudar a sources.list para archive.debian.org e voltar a tornar o servidor atualizável.
Executa apt update num servidor Debian mais antigo e, em vez da lista de pacotes, aparecem apenas mensagens de erro: "404 Not Found", "Release file is not valid yet" ou "Repository does not have a Release file". Neste guia explicamos a causa e mostramos como voltar a tornar o servidor atualizável.
Estão afetadas todas as versões do Debian cujo suporte terminou: Debian 8 (Jessie), Debian 9 (Stretch), Debian 10 (Buster) e, dentro em breve, também o Debian 11 (Bullseye).
Porque é que o apt update falha em versões antigas do Debian
O Debian mantém servidores de pacotes próprios para cada versão publicada. Assim que uma versão chega ao fim do seu suporte, desaparece dos servidores espelho habituais em deb.debian.org e security.debian.org. Os pacotes não se perdem, apenas mudam de sítio: passam para archive.debian.org.
O seu ficheiro /etc/apt/sources.list, porém, continua a apontar para os endereços antigos. É por isso que o apt devolve um erro 404. A isto junta-se um segundo problema: os ficheiros Release guardados no arquivo têm uma data de validade que já passou há muito. Também aí o apt aborta, mesmo quando os endereços estão certos.
Ambos os pontos têm solução. Importa, no entanto, enquadrar bem a situação: um Debian sem suporte deixa de receber atualizações de segurança. Os passos seguintes voltam a tornar o servidor administrável, mas não substituem uma atualização de versão.
Que versão do Debian corre no seu servidor?
Verifique isso em primeiro lugar, porque é daí que dependem os endereços corretos:
cat /etc/debian_version
lsb_release -a
O nome de código devolvido (jessie, stretch, buster, bullseye) volta a aparecer em todas as linhas seguintes.
Fazer backup da sources.list e editá-la
Crie primeiro uma cópia de segurança, para poder voltar atrás a qualquer momento:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
Abra a seguir o ficheiro no editor:
nano /etc/apt/sources.list
Apague o conteúdo atual e insira o bloco da secção seguinte que corresponde à sua versão. Verifique depois também o diretório /etc/apt/sources.list.d/: ali encontram-se muitas vezes ficheiros próprios com endereços desatualizados, que continuam a provocar o erro.
As fontes de arquivo corretas
Debian 10 (Buster)
O suporte terminou em meados de 2024 e o Buster está integralmente no arquivo:
deb http://archive.debian.org/debian/ buster main contrib non-free
deb-src http://archive.debian.org/debian/ buster main contrib non-free
deb http://archive.debian.org/debian-security/ buster/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ buster/updates main contrib non-free
Debian 9 (Stretch)
deb http://archive.debian.org/debian/ stretch main contrib non-free
deb-src http://archive.debian.org/debian/ stretch main contrib non-free
deb http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ stretch/updates main contrib non-free
Debian 8 (Jessie)
O Jessie é o caso de erro clássico, porque muitos guias antigos na internet ainda remetem para security.debian.org. Esse endereço já não devolve nada para o Jessie:
deb http://archive.debian.org/debian/ jessie main contrib non-free
deb-src http://archive.debian.org/debian/ jessie main contrib non-free
deb http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
deb-src http://archive.debian.org/debian-security/ jessie/updates main contrib non-free
deb http://archive.debian.org/debian/ jessie-backports main
deb-src http://archive.debian.org/debian/ jessie-backports main
Debian 11 (Bullseye)
O Bullseye chega ao fim da sua fase LTS em agosto de 2026. A partir daí aplica-se o mesmo padrão. Note que, a partir do Bullseye, a forma de escrever a fonte de segurança mudou: já não é bullseye/updates, mas sim bullseye-security:
deb http://archive.debian.org/debian/ bullseye main contrib non-free
deb-src http://archive.debian.org/debian/ bullseye main contrib non-free
deb http://archive.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://archive.debian.org/debian-security/ bullseye-security main contrib non-free
Enquanto o Bullseye continuar a ter suporte, os servidores espelho habituais continuam a ser a escolha certa. Só faça a mudança quando o apt devolver mesmo um erro 404.
Uma nota para sistemas mais recentes: a partir do Debian 13 (Trixie), as fontes de pacotes deixaram de ser mantidas por omissão em /etc/apt/sources.list e passaram para o formato deb822, em /etc/apt/sources.list.d/debian.sources. Ali a estrutura é diferente, mas o princípio mantém-se igual.
Aceitar listas de pacotes expiradas
Depois de guardar, o apt vai provavelmente continuar a abortar, desta vez com a indicação de que o ficheiro Release expirou. Em versões arquivadas isso é normal. Diga ao apt que ignore a data de validade:
echo 'Acquire::Check-Valid-Until "false";' | tee /etc/apt/apt.conf.d/10-nocheckvalid
Se precisar disto apenas uma única vez, pode também acrescentar a opção diretamente ao comando, em vez de criar um ficheiro:
apt-get -o Acquire::Check-Valid-Until=false update
A seguir, a atualização habitual volta a funcionar:
apt-get update
apt-get upgrade
Mensagens de erro frequentes e o que significam
- "404 Not Found": o endereço na sources.list ainda aponta para um servidor espelho habitual. Mude para archive.debian.org.
- "Release file ... is not valid yet" ou "expired": a data de validade do ficheiro Release já passou. Defina a opção Check-Valid-Until conforme descrito acima.
- "The repository ... does not have a Release file": normalmente é um erro de escrita no nome de código, ou uma suite que não existe no arquivo. Verifique a grafia letra a letra.
- "NO_PUBKEY" ou "EXPKEYSIG": a chave de assinatura da versão antiga expirou. Em muitos casos ajuda reinstalar o pacote debian-archive-keyring.
- O erro mantém-se apesar da sources.list corrigida: existe ainda um segundo ficheiro com endereços antigos em
/etc/apt/sources.list.d/.
A solução duradoura: atualizar a versão ou reinstalar
A mudança para o arquivo devolve o seu servidor a um estado administrável, mas não fornece atualizações de segurança. Num servidor acessível a partir da internet deve, por isso, seguir-se a passagem para uma versão do Debian com suporte.
Há dois caminhos possíveis:
- Reinstalação: na maioria dos casos, o caminho mais rápido e mais limpo. Pode reinstalar o seu servidor com um sistema operativo atual a qualquer momento, por si próprio, a partir da área de cliente. Guarde antes os seus dados e ficheiros de configuração.
- Atualização passo a passo: o Debian pode ser atualizado de versão em versão, ou seja, por exemplo do Buster para o Bullseye e depois para o Bookworm. Saltos por cima de várias versões não são suportados e acabam regularmente num sistema avariado.
Em qualquer dos casos, crie antes uma cópia de segurança. A experiência mostra que uma atualização a partir de versões com vários anos é justamente o momento em que configurações antigas e fontes de terceiros dão problemas.
Perguntas frequentes
Porque é que o apt update devolve de repente um erro 404?
Que versões do Debian estão afetadas?
O que significa a mensagem de que o ficheiro Release expirou?
Volto a receber atualizações de segurança depois da mudança?
Posso atualizar diretamente do Debian 8 para o Debian 12?
2023-2026 KernelHost GmbH. Todos os direitos reservados. Este guia está protegido por direitos de autor. A sua republicação noutros sites, na íntegra, em parte ou de forma editada, não é permitida sem o nosso consentimento por escrito. Citações com indicação da fonte e ligação são expressamente bem-vindas.

