ฉลาดรับติดตั้งหลายแพคเกจโดยไม่หยุด


25

ฉันกำลังสร้างสคริปต์ทุบตีที่ติดตั้งแพ็คเกจต่างๆโดยใช้ apt-get install อย่างไรก็ตามฉันสังเกตเห็นว่าหากมีบรรทัดที่ระบุว่า:

sudo apt-get install package1 package2 package3

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

ขอบคุณล่วงหน้า.

คำตอบ:


18

ฉันแนะนำapt-getตัวเลือก

sudo apt-get --ignore-missing install $list_of_packages

แต่พึงระวังว่าการพึ่งพาที่ขาดหายไปนั้นไม่สามารถเพิกเฉยได้และแม้ว่าคุณจะใช้ก็ตาม--forceคุณก็สามารถทำให้ระบบเสียหาย


1
โปรดทราบว่า--ignore-missingจะแก้ไขปัญหาเฉพาะสำหรับปัญหาในการดาวน์โหลด ดูsuperuser.com/a/844627/106974
IsaacS

3
สิ่งนี้ใช้ไม่ได้จริง
leoheck

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

5
ประสิทธิภาพการทำงานที่โหดร้ายบิตฉลาด (ต้นไม้พึ่งพาแพคเกจจะถูกสร้างขึ้นจากรอยขีดข่วนสำหรับการทำซ้ำทุกครั้ง) แต่ควรจะทำงานได้ดี
Serge Broslavlav

เนื่องจาก @blueskin พูดพาดพิงถึงการใช้-yตัวเลือกจะดีถ้าคุณไม่ต้องการโต้ตอบกับมันโดยเฉพาะเมื่อติดตั้งรายการแพคเกจจำนวนมาก
pd12

0

ติดตั้งแต่ละแพ็กเกจเป็นคำสั่งแยกต่างหากแทนที่จะเป็นคำสั่งเดียวด้วยวิธีนี้หากไม่สามารถติดตั้งได้เนื่องจากไม่พบหรือมีข้อผิดพลาดอื่น ๆ ก็จะไม่หยุดการติดตั้งอื่น ๆ ซึ่งคุณสามารถใช้ 'for' วนได้ดังนี้ นอกจากนี้อย่าลืมใช้การ-yตั้งค่าสถานะหากติดตั้งแพคเกจจำนวนมากเพื่อหลีกเลี่ยงการทำร้ายร่างกายในการพิมพ์yesสำหรับแต่ละคน

INSTALL_PKGS="pk1 pk2 pk3 pk4 pk5 ... and so ... on ..pk_gogol"
for i in $INSTALL_PKGS; do
  sudo apt-get install -y $i
done

@Fabby ฉันได้แก้ไขข้อความเพื่อให้ชัดเจนเพื่อความพึงพอใจของคุณ
blueskin

1
ที่ดูเหมือนแก้ไขคำตอบที่มีอยู่ที่นี่มากกว่าคำตอบใหม่ ¯ \ _ (ツ) _ / ¯ขออภัย! -1 ...
Fabby
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.