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?
sumber
Jawaban:
Wheezy dan Jessie baru-baru ini dihapus dari jaringan mirror , jadi jika Anda ingin terus mengambil backport Jessie, Anda harus menggunakan
archive.debian.org
:(Pemeriksaan validitas harus dinonaktifkan karena repositori tidak lagi diperbarui. Jessie
apt
tidak mendukungcheck-valid-until
flag, lihat jawaban inostia untuk detailnya, dan ringkasan konfigurasi lebih lanjut dalam jawaban ini.)The
jessie-updates
repositori telah dihapus: semua pembaruan telah bergabung dengan repositori utama, dan tidak akan ada update non-keamanan lebih lanjut. Jadi referensi kejessie-updates
dalamsources.list
atausources.list.d
file 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
(tanpa
jessie-updates
repositori).Anda juga harus menonaktifkan pemeriksaan validitas
/etc/apt/apt.conf
(yang akan berlaku untuk semua repositori):sumber
jessie-updates
tidak ada lagi, jadi Anda harus menghapusnya sama sekali, dan pembaruan keamanan Jessie masih aktifsecurity.debian.org
.security.debian.org
, bukan melalui backport atau pembaruan. Tidak akan ada lagi pembaruan stabil non-LTS, jadijessie-updates
tidak lagi berguna pada jaringan mirror utama, dan tidak akan ada lagi backports, begitu juga dengan itujessie-backports
.apt
perintah selanjutnya juga tampaknya memerlukan-o Acquire::Check-Valid-Until=false
(per unix.stackexchange.com/a/45973/186565 ) untuk menghindari kesalahan kedaluwarsa.apt.conf
seharusnya juga berfungsi (lihat pembaruan saya)Setelah mencoba solusi yang disarankan oleh @inostia dan @Stephen Kitt saya masih mendapatkan kesalahan berikut:
Saya menemukan bahwa itu dapat diselesaikan dengan menghapus garis
deb http://deb.debian.org/debian jessie-updates main
dari/etc/apt/sources.list
.Saya berakhir dengan cuplikan berikut di Dockerfile saya:
sumber
sed
perintah Anda yang melakukan trik untuk saya:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
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
:Saya kemudian juga menjalankan kesalahan keamanan
apt-get update
.Mengikuti Cara mengatasi masalah "Rilis file kedaluwarsa" pada mirror lokal , ini memperbaiki kesalahan itu:
Atau, untuk menonaktifkan pemeriksaan secara permanen, tambahkan ini ke
provision.sh
:Kemudian Anda dapat menjalankan semua
apt
perintah tanpa-o
bendera.sumber
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.
sumber
-stretch
gambar:node:<version>-stretch