제시 백 포트 저장소를 가져 오지 못했습니다.


155

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 저장소를 더 이상 사용할 수 없습니까? 그리고 이것이 일시적인 문제가 아닌 경우, 새로운 데비안 안정 버전으로 업그레이드하지 않고이 옵션 또는 이와 동등한 저장소를 사용해야하는 옵션은 무엇입니까?



이것은 수퍼 유저의 데비안 에서 apt-get 업데이트가 실패 하는 것과 본질적으로 같은 질문 입니다.
CVn

답변:


180

Wheezy와 Jessie는 최근 미러 네트워크에서 제거되었으므로 Jessie 백 포트를 계속 가져 오려면 archive.debian.org대신 다음 을 사용해야 합니다.

deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main

(리포지토리가 더 이상 업데이트되지 않으므로 유효성 검사를 비활성화해야합니다. Jessie aptcheck-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";

1
죄송합니다. 제 답변은 그다지 명확하지 않았습니다. 내가 준 줄은 백 포트 전용이었습니다. jessie-updates더 이상 존재하지 않으므로 모두 삭제해야하며 Jessie 보안 업데이트는 아직 사용 중입니다 security.debian.org.
Stephen Kitt

2
@ 아니요, 보안 업데이트는 security.debian.org백 포트 나 업데이트를 통하지 않고에 제공 됩니다. LTS가 아닌 안정적인 업데이트 jessie-updates가 더 이상 없으므로 메인 미러 네트워크에서 더 이상 유용하지 않으며 더 이상 백 포트가 없으므로 동일하게 진행됩니다 jessie-backports.
Stephen Kitt

4
나를 위해 작동하지 않습니다 :```E : archive.debian.org/debian/dists/jessie-backports/InRelease의 릴리스 파일 이 만료되었습니다 (34d 20h 7min 12s부터 유효하지 않음). 이 저장소에 대한 업데이트는 적용되지 않습니다. ```
Avi Kivity

2
만료 오류를 피하기 위해 후속 apt명령도 -o Acquire::Check-Valid-Until=false( unix.stackexchange.com/a/45973/186565 당 ) 필요한 것으로 나타났습니다 .
sumitsu

2
@ sumitsu, 감사합니다. 설정 apt.conf도 작동합니다 (내 업데이트 참조).
Stephen Kitt

42

@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

1
나는 당신과 같은 문제가 있었고 당신의 발췌 문장이 나를 위해 일했습니다!
cafemike

1
내 경우 도커 이미지 (postgres)가 deb.debian.org 대신 httpredir.debian.org를 사용하고 있었기 때문에 sed 부분을 티킹해야했습니다.
harrybvp

1
감사합니다!!! Debian jessie 변경 후 Dockerfile을 수정하기 위해 이틀 동안 고심하고 있습니다. 스 니펫을 붙여 넣었고 모두 다시 작동합니다.
wpjmurray

죄송하지만 여전히 같은 문제입니다 ....
user1722245

5
다음은 sed나를위한 트릭을 수행 한 업데이트 된 명령 버전입니다 .sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane

26

이것은 데비안 "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.


1
모든 리포지토리에 적용되는 유효성 검사를 비활성화하는 것이 위험하지 않습니까?
막심 라 파리

4

오래된 docker 이미지 기반과 함께 NodeJS를 사용하는 경우. 여분의 라이브러리를 컴파일하기 위해 오래된 소스가있는 고정 된 이미지가 있습니다.

컨텍스트 : 도커 빌드 중에 파이썬을 설치하려면 도커 빌드 중에 종속성을 소스 화하지 못했기 때문에 이미지를 빌드하는 동안 (최근 24 시간 이내에)이 문제가 발생했습니다.

이 게시물에서 아카이브 경로 권장 사항을 시도했지만 404를 넘을 수 없었습니다. (또한 오늘 현재 archive.debian.org 위치에서 제공)

솔루션 : 나는 최신 컨테이너 버전의 노드 (python libs가 이미 사전 설치되어 있음)로 전환하고 패키지 json (이제 pythyon을 원했던 바이너리 라이브러리도 포함)의 일부 lib를 업데이트하면 문제가 더 이상 사용되지 않습니다. .

결국 컨테이너 스택 (노드 : 최신)의 기본 이미지를 업데이트하는 것이 가장 간단한 해결 방법이었습니다.

이진 종속성이 포함 된 오래된 이미지 스택에주의해야합니다. 코어 OS 계층을 업데이트하는 데 다소 시간이 걸릴 수 있습니다.


안녕하세요 글렌, 게시 해 주셔서 감사합니다. 나는 "RUN apt-get update -y && apt-get install supervisor python-python-dev curl -y --force-yes"와 같이 dockerfile에서 동일한 문제가 발생한다고 생각합니다. FROM node : 6.11.2를 사용하고 있습니다.이 문제를 해결하려면 어떻게해야합니까?
아론

1
Docker Node 이미지의 경우 대안은 -stretch이미지 를 사용하는 것입니다.node:<version>-stretch
lukeaus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.