Como solucionar o problema "Liberar arquivo expirado" em um espelho local

61

Eu tenho um espelho local (criado com o debmirror) e, quando executo apt-get updatealguns dias depois, recebo o seguinte:

E: Release file expired, ignoring file:/home/wena/.repo_bin/dists/sid/Release (invalid since 14h 31min 45s)

Como faço para resolver isso?

tshepang
fonte
4
Aviso de segurança: Esta pergunta pede uma solução alternativa. No entanto, é melhor fixar o espelho ou apontar para um que funcione. Mudei para apontar para httpredir.debian.org/debian e ele começou a funcionar novamente.
CTRL-ALT-DELOR
Mude para um espelho diferente e funcionará.
Patrick Mutwiri
2
O que é "melhor" depende de quais são seus objetivos. Se seu objetivo é obter os pacotes mais recentes do Debian, mudar o mirror é a solução certa. Se o seu objetivo é usar o espelho antigo que você possui localmente, para continuar seu trabalho onde a Internet não está disponível ou é cara, desativar a verificação de vencimento é a solução certa. Se seu objetivo é atualizar para uma versão mais antiga específica do repositório por motivos de triagem de erros, desativar novamente a verificação de expiração é a solução certa.
plugwash 20/09/18
De fato, cheguei a esta mensagem enquanto usava o Debian Archive para um sistema Debian Wheezy que não pode ser atualizado.
JucaPirama

Respostas:

99

Adicione isto ao comando:

-o Acquire::Check-Valid-Until=false

Por exemplo:

sudo apt-get -o Acquire::Check-Valid-Until=false update
AA
fonte
11
Isso funcionou, mas alguma explicação sobre o porquê disso seria útil.
Faheem Mitha 9/09/14
4
Isso desativa a verificação que verifica assinaturas digitais expiradas, portanto o apt também aceitará chaves de liberação antigas e expiradas.
sorria
6
Aviso de segurança: Esta resposta é uma solução alternativa (conforme solicitado). No entanto, é melhor fixar o espelho ou apontar para um que funcione. Mudei para apontar para httpredir.debian.org/debian e ele começou a funcionar novamente.
ctrl-alt-Delor
3
você não pode mudar tão facilmente para versões já obsoletas, como o debian 6, onde você precisa usar o archives.debian.org para obter pacotes agora
Marcin Orlowski -
35

Se você não se importa com essa verificação, não importa para qual espelho, basta criar um arquivo /etc/apt/apt.conf.d/(por exemplo, nomeá-lo 10no--check-valid-until) e colocar a opção diretamente lá:

Acquire::Check-Valid-Until "0";

Depois disso, você nunca mais será incomodado com o aviso mencionado.

Jaleks
fonte
11
Embora a solução alternativa em si não seja a solução ideal, eu tenho uma caixa de desenvolvimento com a qual não me importo, então esse aborrecimento simplesmente me atrapalha. Consegui usar esta resposta com o Ansible, pois não consigo encontrar nenhuma maneira de adicionar a resposta aceita ao módulo de ação ao usar ansible_pkg_mgr.
jia103
11
um comando:echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid
rubo77
11

Os arquivos do release possuem uma entrada válida até, por exemplo Valid-Until: Thu, 07 Oct 2010 08:17:56 UTC

Se o arquivo de liberação não for mais válido, execute o debmirror novamente para verificar se há alguma alteração no repositório. Uma mudança será o arquivo de lançamento e você receberá uma nova validade.

Você pode automatizar isso facilmente com uma entrada crontab.

echox
fonte
Obrigado por esse. Eu deveria ter olhado dentro desse arquivo antes de perguntar. Curiosamente, isso é algo novo? Isso não aconteceu antes (mas uma vez).
tshepang 30/09/10
Eu não uso o debian com muita frequência no momento, mas talvez eles tenham mudado os ciclos do arquivo de lançamento para uma data mais curta ...
echox
3

Alguns dos espelhos podem ter arquivos obsoletos. Isso aconteceu comigo recentemente, e também estava vinculado ao servidor de cache que estou usando (apt-cacher-ng), que tenta economizar largura de banda redirecionando os repositórios do mesmo arquivo para uma única entidade (no meu caso, se Espelho húngaro). Atualizações diretas através do espelho alemão funcionaram bem, por exemplo. Tente mudar o espelho que você está usando. Caso você esteja usando o apt-cacher-ng, precisará fazer algo na linha de alteração do conteúdo do seguinte arquivo:

  • / etc / apt-cacher-ng / backends_debian
  • / etc / apt-cacher-ng / backends_debvol

Depois disso, você também deve reiniciar o apt-cacher-ng para que as alterações entrem em vigor.

tshepang
fonte
Observe que eu estava pedindo uma solução alternativa, não por que isso estava acontecendo (boa resposta, no entanto). Nesse caso, eu estava, conscientemente, tendo um repositório obsoleto.
tshepang 13/05
3

Isso também pode acontecer se a data / hora do sistema estiver incorreta. Eu o corrigi corrigindo meu horário local antes de fazer a atualização.

MarrekNožka
fonte
@AnthonyGeoghegan Faz por mim. Esta é a única coisa que funcionou no final.
Martin Vseticka 30/01
11
@MartinVseticka Você está certo. Fiz esse comentário quando me deparei com essa resposta em uma das filas de revisão depois que o sistema o sinalizou por moderação. O texto original (antes de Michael editá-lo) era muito menos útil.
Anthony G - justiça para Monica
2

Não tenho certeza se está relacionado ao problema atual de Jessie ( https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html ) ou não. mas para aqueles que tem o mesmo erro até já usaram

sudo apt-get -o Acquire::Check-Valid-Until=false update

e ainda ocorreu o mesmo problema, tente isso em vez disso

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until

Funciona para mim :)

Alex Chandra
fonte
0

Eu removi /var/lib/apt/*e executei novamente apt-get update, e funciona!

Patrick
fonte
Faço isso por um erro completamente diferente e funciona para esse. Este erro é completamente irrelevante.
snetch
0

O espelho pode não ter expirado.

Em vez disso, algo mais no seu sistema pode estar bagunçado. Tente o seguinte:


1) Comente temporariamente as linhas relacionadas de /etc/apt/sources.list, ou /etc/apt/source.list.d/*. Por exemplo, depois que comentei as duas linhas a seguir, meu erro desapareceu (com a conseqüência de que esses arquivos temporariamente não foram usados ​​para recarregamentos):

deb http://security.debian.org/ stretch/updates non-free contrib main
deb http://mirrors.ocf.berkeley.edu/debian/ stretch-updates main contrib non-free

2) Abra o synaptic e recarregue, ou provavelmente sudo apt-get updatetambém funcionaria.

3) Comente essas linhas novamente.

4) Repita a etapa 2.


Corrigido isso para mim. Suponho que meu cache apt tenha uma data ruim.

Meu problema ocorreu após restaurar meus sistemas de arquivos / (root) e / var a partir dos snapshots btrfs para ajudar a corrigir um problema de instalação de pacote que ocorreu. A mensagem de erro exata que eu estava recebendo era:

O arquivo de lançamento de http://mirrors.ocf.berkeley.edu/debian/dists/stretch-updates/InRelease expirou (inválido desde 5d 4h 50min 18s). As atualizações para este repositório não serão aplicadas. O arquivo da versão para http://security.debian.org/dists/stretch/updates/InRelease expirou (inválido desde 2d 2h 52min 43s). As atualizações para este repositório não serão aplicadas.

Vista elíptica
fonte