ดำเนินการต่อโดยเกิดข้อผิดพลาดเมื่อ apt-get พบการติดตั้งไม่สามารถค้นหาปัญหาของแพ็คเกจได้


11

เมื่อฉันเรียกใช้ต่อไปนี้:

sudo apt-get install vim abcde php5-cli

มันล้มเหลวด้วยข้อความต่อไปนี้ซึ่งเป็นพฤติกรรมที่คาดหวัง:

E: ไม่พบแพ็คเกจ abcde`

ฉันต้องการที่จะติดตั้งvimและแม้ว่าจะมีข้อผิดพลาดในabcdeเพียงแค่ติดตั้งphp5-cliแพคเกจต่อไป หมายความว่าฉันต้องการapt-getลงรายการต่อไปแม้ว่ามันจะไม่สามารถหาแพ็คเกจได้

ฉันได้พยายาม:

sudo apt-get install --ignore-missing vim abcde php5-cli

คำตอบ:


9

คำตอบสั้น ๆ :เป็นไปได้ว่าคุณไม่ต้องการทำสิ่งนี้จริงๆ

ทำไมถึงเป็นอย่างนั้น? มีการอภิปรายจำนวนมากเกี่ยวกับฟังก์ชั่นเฉพาะนี้ หนึ่งในนั้นอยู่ในรายงานข้อผิดพลาด (ซ้ำกัน) นี้และมันถูกเชื่อมโยงกับ

การอภิปรายที่รายงานข้อผิดพลาดยังอธิบายว่า "- หายไปหายไป" ใช้เฉพาะในกรณีที่มีปัญหาในการดาวน์โหลดแพคเกจที่ควรมีอยู่เป็นอย่างอื่นโดยข้อมูลที่คุณ´apt-get´ มี นี่คือคำอธิบายที่นี่และในเอกสารประกอบ

มีวิธีแก้ปัญหาหรือไม่?

หากหลังจากอ่านแหล่งข้อมูลก่อนหน้านี้แล้วคุณยังมั่นใจมากว่าคุณต้องการทำสิ่งนี้ในทางกลับกันมีตัวเลือก (ไม่ดี แต่ค่อนข้างปลอดภัย) เช่นเดียวกับที่ระบุโดยผู้ใช้ "Aleksandr Levchuk" ที่นี่ :

for i in package1 package2 package3; do
  sudo apt-get install $i
done

หรือถ้าคุณต้องการแล้วซับหนึ่งที่มีการปรับเปลี่ยนน้อยที่สุด:

for i in package1 package2 package3; do sudo apt-get install $i; done

หากมีแพ็คเกจจำนวนมากคุณสามารถเพิ่มได้-yดังนั้นมันจะไม่ขอการยืนยันซ้ำ ๆ :

for i in package1 package2 package3; do
  sudo apt-get install -y $i
done

หรือ:

for i in package1 package2 package3; do sudo apt-get install -y $i; done

หวังว่านี่จะช่วยได้


อย่างไรก็ตามถ้าคุณเป็นคนอย่างฉันที่ใช้ Fish แทน Bash คุณจะต้องพิมพ์ "bash" ก่อนเพื่อเปลี่ยนเปลือก จากนั้นคัดลอกและวางคำสั่งตั้งแต่ด้วยเหตุผลบางอย่างมันจะไม่ทำงานเชลล์ปลา ทำงานได้ดีกับ Bash
Ev-

1

วิธีหนึ่งในการหลีกเลี่ยงสิ่งนี้คือเรียกใช้ apt-get ครั้งเดียวสำหรับแต่ละแพ็คเกจ :

echo package1 package2 package3 | xargs -n 1 sudo apt-get install -y

หรือว่าเป็นฟังก์ชั่น

function install_ignore_fail { echo "$*" | xargs -n 1 sudo apt-get install -y; }

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