วิธีแก้ไขปัญหา“ ไฟล์นำออกใช้หมดอายุ” ในมิเรอร์โลคัล


59

ฉันมีกระจกในพื้นที่ (สร้างขึ้นด้วย debmirror) และเมื่อฉันทำงานapt-get updateหลังจากสองสามวันฉันได้รับสิ่งนี้:

E: Release file expired, ignoring file:/home/wena/.repo_bin/dists/sid/Release (invalid since 14h 31min 45s)

ฉันจะแก้ไขสิ่งนั้นได้อย่างไร


4
คำเตือนความปลอดภัย: คำถามนี้ถามหาวิธีแก้ไข อย่างไรก็ตามมันเป็นการดีกว่าที่จะแก้ไขกระจกหรือชี้ไปที่การทำงาน ฉันเปลี่ยนไปชี้ที่httpredir.debian.org/debianและมันก็เริ่มทำงานอีกครั้ง
ctrl-alt-delor

เปลี่ยนเป็นมิเรอร์อื่นและมันจะใช้ได้
Patrick Mutwiri

2
"ดีกว่า" คืออะไรขึ้นอยู่กับเป้าหมายของคุณ หากเป้าหมายของคุณคือการได้รับแพ็คเกจล่าสุดจาก Debian การเปลี่ยนมิเรอร์เป็นวิธีแก้ปัญหาที่ถูกต้อง หากเป้าหมายของคุณคือการใช้มิเรอร์ที่เก่ากว่าที่คุณมีอยู่ในพื้นที่เพื่อให้คุณสามารถทำงานต่อไปได้โดยที่อินเทอร์เน็ตไม่สามารถใช้งานได้หรือมีราคาแพง หากเป้าหมายของคุณคือการปรับปรุงเป็น repo รุ่นเก่าโดยเฉพาะเพื่อหาข้อผิดพลาดด้วยเหตุผล triage แล้วปิดการตรวจสอบหมดอายุอีกครั้งเป็นทางออกที่เหมาะสม
plugwash

อันที่จริงฉันมาถึงข้อความนี้ในขณะที่ใช้ Debian Archive สำหรับระบบ Debian Wheezy ที่ไม่สามารถอัปเดตได้
JucaPirama

คำตอบ:


98

เพิ่มไปยังคำสั่ง:

-o Acquire::Check-Valid-Until=false

ตัวอย่างเช่น:

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

11
วิธีนี้ใช้ได้ผล แต่มีคำอธิบายว่าทำไมมันถึงมีประโยชน์
Faheem Mitha

4
การทำเช่นนี้จะเป็นการยกเลิกการตรวจสอบซึ่งจะตรวจสอบลายเซ็นดิจิทัลที่หมดอายุดังนั้น apt จะยอมรับปุ่มปลดล็อครุ่นเก่าและรุ่นหมดอายุด้วยเช่นกัน
ยิ้ม

6
คำเตือนเกี่ยวกับความปลอดภัย: คำตอบนี้เป็นวิธีแก้ปัญหา (ตามที่ขอ) อย่างไรก็ตามมันเป็นการดีกว่าที่จะแก้ไขกระจกหรือชี้ไปที่การทำงาน ฉันเปลี่ยนไปชี้ที่httpredir.debian.org/debianและมันก็เริ่มทำงานอีกครั้ง
ctrl-alt-delor

3
คุณไม่สามารถเปลี่ยนได้อย่างง่ายดายสำหรับรุ่นที่เลิกใช้แล้วเช่น say debian 6 ซึ่งคุณต้องใช้ archives.debian.org เพื่อรับแพ็กเกจใด ๆ ตอนนี้
Marcin Orlowski

35

หากคุณไม่สนใจเกี่ยวกับการตรวจสอบนี้ไม่ว่าจะทำมิรเรอร์ใดเพียงสร้างไฟล์ใน/etc/apt/apt.conf.d/(เช่นตั้งชื่อ10no--check-valid-until) และวางตัวเลือกไว้ที่นั่น:

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

หลังจากนี้คุณจะไม่ถูกรบกวนอีกด้วยคำเตือนที่กล่าวมา


1
แม้ว่าการแก้ปัญหาด้วยตนเองไม่ใช่วิธีแก้ปัญหาที่ดีที่สุด แต่ฉันก็มีกล่องพัฒนาที่ฉันไม่สนใจดังนั้นการรบกวนนี้ก็เกิดขึ้นในแบบของฉัน ฉันสามารถใช้คำตอบนี้กับ Ansible ได้เนื่องจากฉันไม่สามารถหาวิธีเพิ่มคำตอบที่ยอมรับไปยังโมดูลการดำเนินการเมื่อใช้ ansible_pkg_mgr
jia103

1
คำสั่งเดียว:echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid
rubo77

11

ไฟล์ที่วางจำหน่ายมีรายการที่ถูกต้องจนกระทั่งเช่น Valid-Until: Thu, 07 Oct 2010 08:17:56 UTC

หากไฟล์รีลีสไม่ถูกต้องอีกต่อไปคุณควรรัน debmirror อีกครั้งเพื่อตรวจสอบว่ามีการเปลี่ยนแปลงในที่เก็บหรือไม่ หนึ่งการเปลี่ยนแปลงจะเป็นไฟล์การเปิดตัวและคุณจะได้รับความถูกต้องใหม่

คุณสามารถทำสิ่งนี้โดยอัตโนมัติด้วยรายการ crontab


ขอบคุณสำหรับสิ่งนั้น ฉันควรดูไฟล์ข้างในก่อนถาม นี่เป็นเรื่องใหม่หรือไม่? มันไม่เคยเกิดขึ้นมาก่อน (แต่ครั้งเดียว)
tshepang

ฉันไม่ได้ใช้เดเบียนจริงๆมักจะอยู่ในขณะนี้ แต่บางทีพวกเขาเพิ่งเปลี่ยนรอบไฟล์ที่ปล่อยไปเป็นวันที่สั้น ...
echox

3

มิเรอร์บางตัวอาจมีไฟล์เก่า ๆ เรื่องนี้เกิดขึ้นกับฉันเมื่อเร็ว ๆ นี้และมันก็เชื่อมโยงกับเซิร์ฟเวอร์แคชที่ฉันใช้ (apt-cacher-ng) ซึ่งพยายามบันทึกแบนด์วิดท์ด้วยการเปลี่ยนเส้นทางที่เก็บสำหรับเก็บถาวรเดียวกันไปยังเอนทิตีเดียว (ในกรณีของฉันถ้า กระจกฮังการี) ยกตัวอย่างเช่นการอัพเดทโดยตรงผ่านกระจกเยอรมันทำงานได้ดี ลองเปลี่ยนกระจกที่คุณใช้ ในกรณีที่คุณใช้ apt-cacher-ng คุณจะต้องทำอะไรบางอย่างในสายของการเปลี่ยนแปลงเนื้อหาของไฟล์ต่อไปนี้:

  • / etc / apt-cacher-ng / backends_debian
  • / etc / apt-cacher-ng / backends_debvol

หลังจากนั้นคุณควรรีสตาร์ท apt-cacher-ng เพื่อให้การเปลี่ยนแปลงมีผล


โปรดทราบว่าฉันขอวิธีแก้ปัญหาไม่ใช่สาเหตุที่เกิดขึ้น (คำตอบที่ดี) ในกรณีนี้ฉันรู้ว่ามีที่เก็บเก่า
tshepang

3

สิ่งนี้สามารถเกิดขึ้นได้หากวันที่ / เวลาระบบของคุณไม่ถูกต้อง ฉันแก้ไขโดยแก้ไขเวลาท้องถิ่นของฉันก่อนทำการอัปเดต


@AnthonyGeoghegan มันทำเพื่อฉัน นี่เป็นสิ่งเดียวที่ทำงานได้ในที่สุด
Martin Vseticka

1
@MartinVseticka คุณพูดถูก ฉันแสดงความคิดเห็นนั้นเมื่อฉันเจอคำตอบนี้ในหนึ่งในคิวการตรวจสอบหลังจากที่ระบบติดธงทำเครื่องหมายเพื่อกลั่นกรอง ถ้อยคำดั้งเดิม (ก่อนที่ Michael จะแก้ไข) มีประโยชน์น้อยกว่ามาก
Anthony G - ความยุติธรรมสำหรับโมนิก้า

1

ไม่แน่ใจว่าเกี่ยวข้องกับปัญหาปัจจุบันของ Jessie หรือไม่( https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html ) หรือไม่ แต่สำหรับผู้ที่มีข้อผิดพลาดเดียวกันใช้แล้ว

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

และยังคงเกิดปัญหาเดียวกันให้ลองทำสิ่งนี้แทน

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until

มันเหมาะกับฉัน :)


0

ฉันลบ/var/lib/apt/*แล้วรันใหม่อีกครั้งapt-get updateและใช้งานได้!


ฉันทำเช่นนั้นสำหรับข้อผิดพลาดที่แตกต่างอย่างสิ้นเชิงและใช้งานได้สำหรับข้อผิดพลาดนั้น ข้อผิดพลาดนี้ไม่เกี่ยวข้องอย่างสมบูรณ์
ฉก

0

กระจกอาจไม่หมดอายุ

ค่อนข้างอย่างอื่นในระบบของคุณอาจจะสับสน ลองสิ่งนี้:


1) แสดงความคิดเห็นชั่วคราวออกเส้นที่เกี่ยวข้องจากจากหรือ/etc/apt/sources.list /etc/apt/source.list.d/*ตัวอย่างเช่นหลังจากที่ฉันแสดงความคิดเห็นในสองบรรทัดต่อไปนี้ข้อผิดพลาดของฉันก็หายไป (ด้วยเหตุนี้จดหมายเหตุเหล่านี้จึงไม่ถูกใช้ชั่วคราวเพื่อโหลดซ้ำ):

deb http://security.debian.org/ stretch/updates non-free contrib main
deb http://mirrors.ocf.berkeley.edu/debian/ stretch-updates main contrib non-free

2) เปิด synaptic และโหลดใหม่หรืออาจใช้sudo apt-get updateงานได้

3) แสดงความคิดเห็นบรรทัดเหล่านี้กลับมา

4) ทำซ้ำขั้นตอนที่ 2


แก้ไขสิ่งนี้ให้ฉัน ฉันเดาว่าแคชฉลาดของฉันมีวันที่ไม่ดี

ปัญหาของฉันเกิดขึ้นหลังจากการกู้คืนระบบไฟล์ / (root) และ / var ของฉันจากสแน็ปช็อต btrfs เพื่อช่วยแก้ไขปัญหาการติดตั้งแพ็กเกจที่เกิดขึ้น ข้อความแสดงข้อผิดพลาดที่ฉันได้รับคือ:

ปล่อยไฟล์สำหรับ http://mirrors.ocf.berkeley.edu/debian/dists/stretch-updates/InRelease หมดอายุแล้ว (ไม่ถูกต้องตั้งแต่ 5d 4h 50 นาที 18 วินาที) การอัพเดตสำหรับที่เก็บนี้จะไม่ถูกนำไปใช้ ไฟล์ที่วางจำหน่ายสำหรับ http://security.debian.org/dists/stretch/updates/InReleaseหมดอายุ (ไม่ถูกต้องตั้งแต่ 2d 2h 52min 43s) การอัพเดตสำหรับที่เก็บนี้จะไม่ถูกนำไปใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.