Estou usando uma imagem do docker como base para o meu próprio desenvolvimento que adiciona o repositório jessie backports em seu Dockerfile e o usa para instalar uma dependência. Esta imagem usa o seguinte comando para adicionar o repositório:
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
O problema é que a busca de pacotes do repositório de backports agora falha com o seguinte erro (isso costumava funcionar anteriormente):
W: Failed to fetch
http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages
404 Not Found
W: Failed to fetch
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
404 Not Found
Eu olhei nesse servidor e esses caminhos realmente não estão presentes lá.
Eu tentei descobrir no site de backports da Debian se esse repositório em particular ainda deveria estar disponível, e não encontrei nenhuma indicação de que isso foi descontinuado ou algo parecido.
Esse é um problema temporário com o repositório ou o repositório jessie-backports não está mais disponível? E se este não é um problema temporário, que opções eu tenho para usar este repositório ou um equivalente, sem precisar atualizar para a versão estável mais recente do Debian?
fonte
Respostas:
Wheezy e Jessie foram removidos recentemente da rede de espelhos . Portanto, se você quiser continuar buscando backports de Jessie, precisará usar
archive.debian.org
:(As verificações de validade precisam ser desativadas, pois o repositório não está mais sendo atualizado. Jessie's
apt
não suporta ocheck-valid-until
sinalizador, consulte a resposta da inostia para obter detalhes e o resumo da configuração mais abaixo nesta resposta.)O
jessie-updates
repositório foi removido: todas as atualizações foram mescladas com o repositório principal e não haverá mais atualizações que não sejam de segurança. Portanto, qualquer referência ajessie-updates
insources.list
ousources.list.d
arquivos precisa ser removida. As atualizações de segurança continuarão sendo fornecidas , nas arquiteturas suportadas pelo LTS, no repositório de segurança, até 30 de junho de 2020.Desde que você está construindo uma imagem de recipiente, eu altamente recomendo baseando-se no Debian 9 (estiramento) em vez. Para permanecer no Debian 8 (Jessie), seus repositórios devem acabar parecendo
(sem o
jessie-updates
repositório).Você também precisará desativar as verificações de validade
/etc/apt/apt.conf
(que serão aplicadas a todos os repositórios):fonte
jessie-updates
não existe mais, portanto, você deve excluí-lo completamente, e as atualizações de segurança de Jessie ainda estão ativadassecurity.debian.org
.security.debian.org
, não através de backports ou atualizações. Não haverá mais atualizações estáveis que não sejam LTS; portanto,jessie-updates
não será mais útil na rede principal de espelhos e também não haverá mais backports, portanto, o mesmo valejessie-backports
.apt
comandos subseqüentes também parecem exigir-o Acquire::Check-Valid-Until=false
(por unix.stackexchange.com/a/45973/186565 ) para evitar o erro de expiração.apt.conf
também deve funcionar (consulte a minha atualização).Depois de tentar soluções sugeridas por @inostia e @Stephen Kitt, ainda estava recebendo o seguinte erro:
Eu descobri que isso pode ser resolvido removendo a linha
deb http://deb.debian.org/debian jessie-updates main
de/etc/apt/sources.list
.Acabei com o seguinte trecho no meu Dockerfile:
fonte
sed
comando que fez o truque para mim:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
Isso aconteceu comigo provisionando uma caixa do Vagrant que estava usando o Debian "Jessie".
Seguindo a resposta de Stephen Kitt , mudar para archive.debian.org funcionou para mim, mas eu tive que adicioná-lo ao
/etc/apt/sources.list.d/jessie-backports.list
invés de fazê-lo/etc/apt/sources.list
.Eu adicionei a seguinte linha a
provision.sh
:Eu também recebi um erro de segurança em execução
apt-get update
.A seguir, Como solucionar o problema "Liberar arquivo expirado" em um espelho local , isso corrigiu o erro:
Como alternativa, para desativar as verificações permanentemente, adicione isso a
provision.sh
:Então você pode executar todos os
apt
comandos sem o-o
sinalizador.fonte
Para aqueles que usam o NodeJS com fundações mais antigas de imagem do docker. Eu tinha algumas imagens congeladas que tinham essas fontes mais antigas para a compilação de bibliotecas extras.
Contexto: se você queria instalar o python durante uma construção do docker, você se deparou com esse problema durante a construção da imagem (nas últimas 24 horas), pois ele falhou ao originar dependências durante a construção do docker.
Eu tentei as recomendações de caminho de arquivo neste post, mas não consegui passar dos 404. (também vindo do local archive.debian.org até hoje)
Solução: acabei alternando para a versão mais recente do contêiner do nó (que já possui bibliotecas python pré-instaladas) que, e atualizando algumas bibliotecas no pacote json (que agora também incluem bibliotecas binárias que costumavam querer pythyon) tornaram o problema obsoleto .
No final, atualizar a imagem de fundação da pilha de contêineres (nó: mais recente) parecia ser o caminho mais direto para a resolução.
Desconfie de pilhas de imagens obsoletas com dependências binárias incluídas, elas provavelmente levarão um tempo para atualizar a camada principal do sistema operacional.
fonte
-stretch
imagens:node:<version>-stretch