apt update falha: mudar um Debian antigo para o arquivo

Publicado a Atualizado a 5 min de leitura

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:

  1. 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.
  2. 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?
A versão do Debian chegou ao fim do seu suporte. Os pacotes mudaram dos servidores espelho habituais para archive.debian.org, mas a sua sources.list continua a apontar para o endereço antigo.
Que versões do Debian estão afetadas?
Todas as versões sem suporte, ou seja, Debian 8 (Jessie), Debian 9 (Stretch) e Debian 10 (Buster). O Debian 11 (Bullseye) segue-se após o fim da sua fase LTS, em agosto de 2026.
O que significa a mensagem de que o ficheiro Release expirou?
Os ficheiros Release arquivados têm uma data de validade ultrapassada há muito tempo. Com a definição Acquire::Check-Valid-Until, o apt aceita-os na mesma.
Volto a receber atualizações de segurança depois da mudança?
Não. O arquivo contém apenas o último estado publicado antes do fim do suporte. Num servidor acessível a partir da internet, a única solução duradoura é uma atualização de versão ou uma reinstalação.
Posso atualizar diretamente do Debian 8 para o Debian 12?
Não. O Debian só suporta o salto para a versão imediatamente seguinte. Em sistemas muito antigos, uma reinstalação é normalmente mais rápida e bastante mais limpa.

Debian apt sources.list archive.debian.org Fim de suporte Jessie Buster