Không thể tải kho lưu trữ backports jessie


157

Tôi đang sử dụng hình ảnh docker làm cơ sở cho sự phát triển của riêng mình, bổ sung kho lưu trữ backport jessie trong Dockerfile của nó và sử dụng hình ảnh đó để cài đặt phụ thuộc. Hình ảnh này sử dụng lệnh sau để thêm kho lưu trữ:

echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

Vấn đề là việc tìm nạp các gói từ kho lưu trữ backports hiện không thành công với lỗi sau (điều này được sử dụng để làm việc trước đây):

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

Tôi đã xem trên máy chủ đó và những con đường đó thực sự không có ở đó.

Tôi đã cố gắng tìm hiểu trên trang web backport Debian liệu kho lưu trữ cụ thể này có còn tồn tại hay không và tôi không tìm thấy bất kỳ dấu hiệu nào cho thấy điều này không được chấp nhận hoặc đại loại như thế.

Đây có phải là sự cố tạm thời với kho lưu trữ không, hay kho lưu trữ jessie-backports không còn khả dụng nữa? Và nếu đây không phải là sự cố tạm thời, tôi phải sử dụng tùy chọn nào để sử dụng kho lưu trữ này hoặc kho tương đương mà không nâng cấp lên phiên bản ổn định Debian mới hơn?



Đây thực chất là cùng một câu hỏi vì bản cập nhật apt-get đang thất bại trong debian trên Super User .
một CVn

Câu trả lời:


182

Wheezy và Jessie gần đây đã bị xóa khỏi mạng nhân bản , vì vậy nếu bạn muốn tiếp tục lấy backport của Jessie, bạn cần sử dụng archive.debian.orgthay thế:

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

(Kiểm tra tính hợp lệ cần phải được vô hiệu hóa do kho lưu trữ không còn được cập nhật. Jessie aptkhông hỗ trợ check-valid-untilcờ, xem câu trả lời của inostia để biết chi tiết và tóm tắt cấu hình trong câu trả lời này.)

Các jessie-updateskho lưu trữ đã bị xoá: tất cả các bản cập nhật đã được sáp nhập với các kho lưu trữ chính, và sẽ không có cập nhật không có bảo đảm hơn nữa. Vì vậy, bất kỳ tài liệu tham khảo đến jessie-updatestrong sources.listhoặc sources.list.dtập tin cần phải được loại bỏ. Các cập nhật bảo mật sẽ tiếp tục được cung cấp , trên các kiến ​​trúc được LTS hỗ trợ, trong kho lưu trữ bảo mật, cho đến ngày 30 tháng 6 năm 2020.

Vì bạn đang xây dựng một hình ảnh container, tôi đánh giá cao đề nghị dựa trên Debian 9 (Stretch) để thay thế. Để ở lại trên Debian 8 (Jessie), kho lưu trữ của bạn sẽ trông giống như

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

(không có jessie-updateskho lưu trữ).

Bạn cũng cần phải vô hiệu hóa kiểm tra tính hợp lệ /etc/apt/apt.conf(sẽ áp dụng cho tất cả các kho lưu trữ):

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

1
Xin lỗi, câu trả lời của tôi có lẽ không rõ ràng lắm; dòng tôi đã đưa ra chỉ dành cho backport. jessie-updateskhông còn tồn tại nữa, vì vậy bạn nên xóa hoàn toàn điều đó và các bản cập nhật bảo mật của Jessie vẫn được bật security.debian.org.
Stephen Kitt

2
@Ian không, cập nhật bảo mật được cung cấp trên security.debian.org, không thông qua backport hoặc cập nhật. Sẽ không có thêm các bản cập nhật ổn định không phải LTS nữa, do đó, jessie-updateskhông còn hữu ích trên mạng nhân bản chính nữa và sẽ không có thêm bất kỳ bản sao nào nữa, vì vậy cũng vậy jessie-backports.
Stephen Kitt

5
Không hoạt động với tôi: `` `E: Tệp phát hành cho archive.debian.org/debian/dists/jessie-backports/InRelease đã hết hạn (không hợp lệ kể từ 34d 20h 7 phút 12 giây). Cập nhật cho kho lưu trữ này sẽ không được áp dụng. `` `
Avi Kivity

2
Đã phát hiện ra rằng các aptlệnh tiếp theo dường như cũng yêu cầu -o Acquire::Check-Valid-Until=false(theo unix.stackexchange.com/a/45973/186565 ) để tránh lỗi hết hạn.
sumitsu

2
@sumitsu cảm ơn, cài đặt apt.confcũng nên hoạt động (xem cập nhật của tôi).
Stephen Kitt

43

Sau khi thử các giải pháp được đề xuất bởi @inostia và @Stephen Kitt, tôi vẫn nhận được lỗi sau:

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.

Tôi đã tìm ra rằng nó có thể được giải quyết bằng cách loại bỏ dòng deb http://deb.debian.org/debian jessie-updates maintừ /etc/apt/sources.list.

Tôi đã kết thúc với đoạn mã sau trong Dockerfile của mình:

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
Tôi đã có cùng một vấn đề như bạn đã làm và đoạn trích của bạn đã làm việc cho tôi!
cafemike

1
Tôi đã phải xử lý một phần sed vì trong trường hợp của tôi, hình ảnh docker (postgres) đã sử dụng omeppredir.debian.org thay vì deb.debian.org.
harrybvp

1
Cảm ơn bạn!!! Tôi đã vật lộn trong hai ngày để sửa Dockerfile của mình sau khi thay đổi jessie Debian, tôi đã dán đoạn mã của bạn vào và tất cả đều hoạt động trở lại.
wpjm bồ

xin lỗi, nhưng vẫn là vấn đề tương tự ....
user1722245

5
Đây là một phiên bản cập nhật của sedlệnh của bạn đã thực hiện thủ thuật cho tôi:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane

26

Điều này đã xảy ra với tôi khi cung cấp một hộp Vagrant đang sử dụng Debian "Jessie".

Theo câu trả lời của Stephen Kitt , chuyển sang archive.debian.org làm việc cho tôi, nhưng tôi phải thêm nó vào /etc/apt/sources.list.d/jessie-backports.list, thay vì để /etc/apt/sources.list.

Tôi đã thêm dòng sau vào provision.sh:

echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list

Sau đó tôi cũng gặp lỗi bảo mật apt-get update.

Theo dõi Cách khắc phục sự cố "Tệp phát hành đã hết hạn" trên máy nhân bản cục bộ , lỗi này đã khắc phục lỗi đó:

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

Ngoài ra, để vô hiệu hóa kiểm tra vĩnh viễn, hãy thêm phần này vào provision.sh:

echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks

Sau đó, bạn có thể chạy tất cả aptcác lệnh mà không cần -ocờ.


1
Sẽ không nguy hiểm nếu vô hiệu hóa kiểm tra tính hợp lệ sẽ áp dụng cho tất cả các kho lưu trữ?
Maxime Lafarie

4

Đối với những người sử dụng NodeJS với nền tảng hình ảnh docker cũ hơn. Tôi đã có một số hình ảnh đóng băng có các nguồn cũ hơn để tổng hợp các lib thêm.

Bối cảnh: nếu bạn muốn cài đặt python trong quá trình xây dựng docker, bạn đã gặp phải vấn đề này trong quá trình xây dựng hình ảnh (trong vòng 24 giờ qua) vì nó không thể phụ thuộc vào nguồn trong quá trình xây dựng docker.

Tôi đã thử các đề xuất đường dẫn lưu trữ trong bài đăng này nhưng không thể vượt qua 404. (cũng đến từ vị trí archive.debian.org tính đến hôm nay)

Giải pháp: Tôi đã kết thúc việc chuyển sang phiên bản nút chứa mới nhất của nút (đã cài đặt sẵn python lib) và việc cập nhật một số lib trong gói json (hiện tại cũng bao gồm các lib nhị phân từng muốn pythyon) khiến vấn đề trở nên lỗi thời .

Cuối cùng, việc cập nhật hình ảnh nền tảng cho ngăn xếp container (nút: mới nhất) dường như là đường dẫn thẳng nhất tới độ phân giải.

Hãy cảnh giác với các ngăn xếp hình ảnh cũ với các phụ thuộc nhị phân được bao gồm, có lẽ họ sẽ mất một thời gian để cập nhật lớp hệ điều hành cốt lõi.


Xin chào Glen, cảm ơn bạn đã đăng bài. Tôi nghĩ rằng tôi đang gặp vấn đề tương tự trong dockerfile khi tôi có "RUN apt-get update -y && apt-get install giám sát python python-dev curl -y --force-yes". Tôi đang sử dụng nút TỪ: 6.11.2, tôi phải làm gì để vượt qua điều này?
Aaron

1
Đối với hình ảnh Docker Node, một cách khác là sử dụng các -stretchhình ảnh:node:<version>-stretch
lukeaus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.