Gagal mengambil repositori backports jessie

158

Saya menggunakan gambar buruh pelabuhan sebagai basis untuk pengembangan saya sendiri yang menambahkan repositori backport jessie di Dockerfile dan menggunakannya untuk menginstal dependensi. Gambar ini menggunakan perintah berikut untuk menambahkan repositori:

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

Masalahnya adalah bahwa mengambil paket dari repositori backports sekarang gagal dengan kesalahan berikut (ini digunakan untuk bekerja sebelumnya):

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

Saya melihat di server itu, dan jalur itu memang tidak ada di sana.

Saya mencoba mencari tahu di situs backports Debian apakah repositori khusus ini masih harus tersedia, dan saya tidak menemukan indikasi bahwa ini sudah usang atau semacamnya.

Apakah ini masalah sementara dengan repositori, atau apakah repositori jessie-backports tidak tersedia lagi? Dan jika ini bukan masalah sementara, opsi apa yang harus saya gunakan ini atau repositori setara tanpa memutakhirkan ke versi stabil Debian yang lebih baru?

pengguna12345
sumber
Ini pada dasarnya adalah pertanyaan yang sama dengan pembaruan apt-get gagal di debian di Super User .
CVn

Jawaban:

183

Wheezy dan Jessie baru-baru ini dihapus dari jaringan mirror , jadi jika Anda ingin terus mengambil backport Jessie, Anda harus menggunakan archive.debian.org:

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

(Pemeriksaan validitas harus dinonaktifkan karena repositori tidak lagi diperbarui. Jessie apttidak mendukung check-valid-untilflag, lihat jawaban inostia untuk detailnya, dan ringkasan konfigurasi lebih lanjut dalam jawaban ini.)

The jessie-updatesrepositori telah dihapus: semua pembaruan telah bergabung dengan repositori utama, dan tidak akan ada update non-keamanan lebih lanjut. Jadi referensi ke jessie-updatesdalam sources.listatau sources.list.dfile perlu dihapus. Pembaruan keamanan akan terus diberikan , pada arsitektur yang didukung LTS, di repositori keamanan, hingga 30 Juni 2020.

Karena Anda sedang membangun gambar kontainer, saya sangat merekomendasikan mendasarkannya pada Debian 9 (Peregangan) sebagai gantinya. Untuk tetap menggunakan Debian 8 (Jessie), repositori Anda akan terlihat seperti

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

(tanpa jessie-updatesrepositori).

Anda juga harus menonaktifkan pemeriksaan validitas /etc/apt/apt.conf(yang akan berlaku untuk semua repositori):

Acquire::Check-Valid-Until "false";
Stephen Kitt
sumber
1
Maaf, jawaban saya mungkin tidak terlalu jelas; baris yang saya berikan hanya untuk backports. jessie-updatestidak ada lagi, jadi Anda harus menghapusnya sama sekali, dan pembaruan keamanan Jessie masih aktif security.debian.org.
Stephen Kitt
2
@ Tidak, pembaruan keamanan disediakan security.debian.org, bukan melalui backport atau pembaruan. Tidak akan ada lagi pembaruan stabil non-LTS, jadi jessie-updatestidak lagi berguna pada jaringan mirror utama, dan tidak akan ada lagi backports, begitu juga dengan itu jessie-backports.
Stephen Kitt
5
Tidak berfungsi untuk saya: `` `E: Rilis file untuk archive.debian.org/debian/dists/jessie-backports/InRelease telah kedaluwarsa (tidak berlaku sejak 34d 20h 7menit 12s). Pembaruan untuk repositori ini tidak akan diterapkan. `` `
Avi Kivity
2
Telah menemukan bahwa aptperintah selanjutnya juga tampaknya memerlukan -o Acquire::Check-Valid-Until=false(per unix.stackexchange.com/a/45973/186565 ) untuk menghindari kesalahan kedaluwarsa.
sumitsu
2
@sumitsu terima kasih, pengaturan yang apt.confseharusnya juga berfungsi (lihat pembaruan saya)
Stephen Kitt
43

Setelah mencoba solusi yang disarankan oleh @inostia dan @Stephen Kitt saya masih mendapatkan kesalahan berikut:

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.

Saya menemukan bahwa itu dapat diselesaikan dengan menghapus garis deb http://deb.debian.org/debian jessie-updates maindari /etc/apt/sources.list.

Saya berakhir dengan cuplikan berikut di Dockerfile saya:

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
henadzit
sumber
1
Saya memiliki masalah yang sama seperti yang Anda lakukan dan cuplikan Anda bekerja untuk saya!
kafetaria
1
Saya harus jati sed bagian karena Dalam kasus saya gambar buruh pelabuhan (postgres) menggunakan httpredir.debian.org bukan deb.debian.org.
harrybvp
1
Terima kasih!!! Saya telah berjuang selama dua hari untuk memperbaiki Dockerfile saya setelah perubahan Debian jessie, saya menempelkan cuplikan Anda dan semuanya bekerja lagi.
wpjmurray
maaf, tapi masih masalah yang sama ....
user1722245
5
Berikut ini adalah versi terbaru dari sedperintah Anda yang melakukan trik untuk saya:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane
26

Ini terjadi pada saya menyediakan kotak Vagrant yang menggunakan Debian "Jessie".

Mengikuti jawaban Stephen Kitt , beralih ke archive.debian.org bekerja untuk saya, tetapi saya harus menambahkannya /etc/apt/sources.list.d/jessie-backports.list, bukan ke /etc/apt/sources.list.

Saya menambahkan baris berikut ke provision.sh:

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

Saya kemudian juga menjalankan kesalahan keamanan apt-get update.

Mengikuti Cara mengatasi masalah "Rilis file kedaluwarsa" pada mirror lokal , ini memperbaiki kesalahan itu:

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

Atau, untuk menonaktifkan pemeriksaan secara permanen, tambahkan ini ke provision.sh:

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

Kemudian Anda dapat menjalankan semua aptperintah tanpa -obendera.

inostia
sumber
1
Bukankah berbahaya untuk menonaktifkan pemeriksaan validitas yang akan berlaku untuk semua repositori?
Maxime Lafarie
4

Bagi mereka yang menggunakan NodeJS dengan yayasan gambar buruh pelabuhan yang lebih tua. Saya memiliki beberapa gambar beku yang memiliki sumber-sumber yang lebih tua ini untuk kompilasi lib ekstra.

Konteks: jika Anda ingin menginstal python selama pembuatan buruh pelabuhan, Anda mengalami masalah ini selama pembuatan gambar (dalam 24 jam terakhir) karena gagal untuk sumber dependensi selama pembuatan buruh pelabuhan.

Saya mencoba rekomendasi jalur arsip dalam posting ini tetapi tidak bisa melewati 404. (juga berasal dari lokasi archive.debian.org pada hari ini)

Solusi: Saya akhirnya beralih ke versi terbaru dari node node (yang memiliki python libs sudah pra-instal) itu, dan memperbarui beberapa lib di paket json (yang sekarang juga termasuk binary libs yang dulunya ingin pythyon) membuat masalah menjadi usang .

Pada akhirnya, memperbarui gambar dasar untuk tumpukan kontainer (simpul: terbaru) tampaknya menjadi jalan paling lurus ke depan untuk resolusi.

Berhati-hatilah dengan tumpukan gambar basi dengan menyertakan dependensi biner, mereka mungkin perlu waktu untuk memperbarui lapisan OS inti.

Glen C.
sumber
Hai Glen, terima kasih sudah memposting. Saya pikir saya mengalami masalah yang sama di dockerfile seperti yang saya miliki "RUN apt-get update -y && & apt-get install supervisor python python-dev curl -y --force-yes". Saya menggunakan node FROM: 6.11.2, apa yang harus saya lakukan untuk melewati ini?
Aaron
1
Untuk gambar Docker Node, alternatifnya adalah menggunakan -stretchgambar:node:<version>-stretch
lukeaus