apt-get --fix-missing ทำในสิ่งใดและมีประโยชน์เมื่อใด?


37

จากหน้าคน:

-m, --ignore-missing, --fix-missing
  Ignore missing packages; if packages cannot be retrieved or fail the integrity 
  check after retrieval (corrupted package files), hold back those packages and 
  handle the result. 

  Use of this option together with -f may produce an error in some situations. If a 
  package is selected for installation (particularly if it is mentioned on the 
  command line) and it could not be downloaded then it will be silently held back. 

 Configuration Item: APT::Get::Fix-Missing.

นี่คือความสับสน:

  1. 'ละเว้นการขาดหายไป' และ 'แก้ไขการขาดหายไป' เป็นคำพ้องความหมายสำหรับตัวเลือกเดียวกันได้อย่างไร
  2. 'การระงับ' หมายถึงอะไรในบริบทนี้
  3. 'จัดการกับผลลัพธ์' หมายถึงอะไร

และในสถานการณ์อะไรที่มีประโยชน์อยู่ดี เมื่อคุณพยายามติดตั้งแพคเกจที่ไม่ได้อยู่ในดัชนี apt คุณจะได้รับข้อความนี้:

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

คำแนะนำสองข้อ ( apt-get update, apt-get install --fix-missing...) นั้นเทียบเท่ากันหรือไม่?


ใช่มันแปลก ฉันมักจะคิดว่าเป็นคำพ้องของ--fix-missing -fอย่างไรก็ตามพฤติกรรมดังกล่าวควรเหมือนกับของ Synaptic: ลองอัปเดตเฉพาะแพ็คเกจที่ดาวน์โหลด
Danatela

คำตอบ:


34

ตกลงตามลำดับ:

  • (1) -mละเว้นการหายไปหรือแก้ไขแพ็กเกจที่หายไป (ซึ่งแตกต่างจาก-f แพ็คเกจที่เสียหาย ) ตัวเลือกเหล่านี้มีความหมายเหมือนกันสำหรับตัวเลือกเดียวกัน (เนื่องจากการแก้ไขมันไม่สนใจจากที่นี่มันต้องใช้ความแปลกประหลาดของตัวเอง :-))
  • (2-3) เมื่อคุณติดตั้ง / อัพเกรดด้วยapt-get upgradeหรือพร้อมapt-get install somepackageมักจะพยายามอัปเดตการอ้างอิง ซึ่งหมายความว่าอาจพบว่าบางแพคเกจต้องการแพ็คเกจที่มีอยู่ในเวอร์ชันใหม่หรือที่อัพเดทและอื่น ๆ หากแพ็กเกจเหล่านั้นหายไปหรือไม่ผ่านการตรวจสอบความสมบูรณ์ดูเหมือนว่าจะ ระงับแพ็คเกจนี้และต้องการให้คุณจัดการผลลัพธ์ตามวิธีการจัดการของแพ็คเกจที่ต้องการหากเป็นไปได้ บ่อยครั้งที่มันหยุดติดตั้งแพคเกจนี้
  • (4) เมื่อapt-get updateคุณดาวน์โหลดสิ่งที่จำเป็นในการสร้างรายการการพึ่งพา
    หลังจากนั้นคุณสามารถลองapt-get install --fix-missingอีกครั้งโดยหวังว่ารายการที่อัปเดตจะแก้ไขปัญหาด้วยตัวเอง
    สิ่งนี้มีประโยชน์มากในบางครั้งเช่นเมื่อคุณเพิ่มแหล่งข้อมูลสำหรับแพ็คเกจใน/etc/atp/sources.listหรือเมื่อไฟล์ดัชนีแพ็คเกจได้รับการปรับปรุง

ไม่ใช่ทุกโปรแกรมที่คุณสามารถใช้งานได้ภายใต้ Ubuntu มาจากที่เก็บของ Ubuntu อย่างเป็นทางการและได้รับการอัปเดตด้วยรุ่นเดียวกัน - นี่เป็นของหายาก

นอกจากนี้ยังมีสาเหตุหลายประการที่ทำให้การติดตั้งถูกขัดจังหวะโดยฉับพลัน (สัญญาณ kill, การขาดแคลนพลังงาน, ความล้มเหลวของไดรเวอร์กราฟฟิก ... ) ในสถานการณ์เหล่านั้นapt-get updateอาจไม่ทำงานดังนั้นคุณต้องแก้ไขปัญหาด้วยapt-get install --fix-missingหรือdpkg คำสั่ง บางอย่าง

คุณสามารถดูapt-get install --fix-missingเป็นรุ่นไฟและเป็นมิตรของคำสั่งที่ชอบหรือdpkg-reconfigure --alldpkg


36
สิ่งนี้ได้รับการอัปเดตอย่างหนัก แต่สำหรับฉันไม่สามารถเข้าใจได้
LondonRob

-1

ขั้นตอนต่อไปนี้จะช่วยแก้ปัญหา:

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