Docker 파일에 jessie backports 저장소를 추가하고 종속성을 설치하는 데 사용하는 자체 개발의 기반으로 도커 이미지를 사용하고 있습니다. 이 이미지는 다음 명령을 사용하여 저장소를 추가합니다.
echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list
문제는 백 포트 리포지토리에서 패키지를 가져 오는 데 이제 다음 오류 (이전에 작동 했음)와 함께 실패한다는 것입니다.
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
나는 그 서버를 보았고 그 경로는 실제로 존재하지 않습니다.
데비안 백 포트 사이트에서이 특정 리포지토리를 계속 사용할 수 있는지 확인하려고했지만 더 이상 사용되지 않는다는 표시를 찾지 못했습니다.
저장소에 일시적인 문제입니까, 아니면 jessie-backports 저장소를 더 이상 사용할 수 없습니까? 그리고 이것이 일시적인 문제가 아닌 경우, 새로운 데비안 안정 버전으로 업그레이드하지 않고이 옵션 또는 이와 동등한 저장소를 사용해야하는 옵션은 무엇입니까?
답변
Wheezy와 Jessie는 최근 미러 네트워크에서 제거되었으므로 Jessie 백 포트를 계속 가져 오려면 archive.debian.org
대신 다음 을 사용해야 합니다.
deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main
(리포지토리가 더 이상 업데이트되지 않으므로 유효성 검사를 비활성화해야합니다. Jessie apt
는 check-valid-until
플래그를 지원하지 않습니다 . 자세한 내용 은 inostia의 답변 및이 답변의 구성 요약을 참조하십시오.)
jessie-updates
저장소가 제거되었습니다 : 모든 업데이트는 기본 저장소와 통합되었습니다, 더 이상의 비 보안 업데이트가 없을 것입니다. 그래서에 대한 참조 jessie-updates
에서 sources.list
또는 sources.list.d
파일이 제거 될 필요가있다. 보안 업데이트 는 LTS 지원 아키텍처에서 보안 저장소에 2020 년 6 월 30 일까지 계속 제공됩니다.
컨테이너 이미지를 작성하고 있기 때문에 대신 데비안 9 (스트레치)를 사용 하는 것이 좋습니다. 데비안 8 (Jessie)을 유지하려면 리포지토리가 다음과 같이 보입니다.
deb http://cdn-fastly.deb.debian.org/debian/ jessie main
deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://archive.debian.org/debian jessie-backports main
deb-src http://archive.debian.org/debian jessie-backports main
( jessie-updates
저장소 없이 ).
또한 유효성 검사를 비활성화해야합니다 /etc/apt/apt.conf
(모든 리포지토리에 적용됨).
Acquire::Check-Valid-Until "false";
답변
@inostia와 @Stephen Kitt가 제안한 솔루션을 시도한 후에도 여전히 다음과 같은 오류가 발생했습니다.
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
에서 줄 deb http://deb.debian.org/debian jessie-updates main
을 제거하여 해결할 수 있음을 알았습니다 /etc/apt/sources.list
.
Dockerfile에서 다음 스 니펫으로 끝났습니다.
RUN echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get -o Acquire::Check-Valid-Until=false update
답변
이것은 데비안 “Jessie”를 사용하는 Vagrant 박스를 프로비저닝하는 데 일어났습니다.
Stephen Kitt의 답변에 따라 archive.debian.org로 전환하면 나에게 도움이되었지만 /etc/apt/sources.list.d/jessie-backports.list
에 대신 추가해야했습니다 /etc/apt/sources.list
.
나는 다음 줄을 추가했다 provision.sh
:
echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
그런 다음 보안 오류가 발생했습니다 apt-get update
.
다음 로컬 미러의 “릴리스 파일이 만료”주변의 문제를 작동하는 방법 이 그 오류를 수정 :
apt-get -o Acquire::Check-Valid-Until=false update
또는 검사를 영구적으로 비활성화하려면 provision.sh
다음을 추가하십시오 .
echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks
그런 다음 플래그 apt
없이 모든 명령을 실행할 수 있습니다 -o
.
답변
오래된 docker 이미지 기반과 함께 NodeJS를 사용하는 경우. 여분의 라이브러리를 컴파일하기 위해 오래된 소스가있는 고정 된 이미지가 있습니다.
컨텍스트 : 도커 빌드 중에 파이썬을 설치하려면 도커 빌드 중에 종속성을 소스 화하지 못했기 때문에 이미지를 빌드하는 동안 (최근 24 시간 이내에)이 문제가 발생했습니다.
이 게시물에서 아카이브 경로 권장 사항을 시도했지만 404를 넘을 수 없었습니다. (또한 오늘 현재 archive.debian.org 위치에서 제공)
솔루션 : 나는 최신 컨테이너 버전의 노드 (python libs가 이미 사전 설치되어 있음)로 전환하고 패키지 json (이제 pythyon을 원했던 바이너리 라이브러리도 포함)의 일부 lib를 업데이트하면 문제가 더 이상 사용되지 않습니다. .
결국 컨테이너 스택 (노드 : 최신)의 기본 이미지를 업데이트하는 것이 가장 간단한 해결 방법이었습니다.
이진 종속성이 포함 된 오래된 이미지 스택에주의해야합니다. 코어 OS 계층을 업데이트하는 데 다소 시간이 걸릴 수 있습니다.