APT ระบุอย่างชัดเจนว่าไม่ได้ออกแบบมาเพื่อใช้กับสคริปต์:
การใช้สคริปต์และความแตกต่างจากเครื่องมือ APT อื่นๆ
เดอะ ฉลาด(8) บรรทัดคำสั่งได้รับการออกแบบให้เป็นเครื่องมือของผู้ใช้ปลายทาง และอาจเปลี่ยนลักษณะการทำงานระหว่างเวอร์ชันต่างๆ แม้ว่าจะพยายามไม่ทำลายความเข้ากันได้แบบย้อนกลับ แต่ก็ไม่รับประกันเช่นกันหากการเปลี่ยนแปลงดูเหมือนจะเป็นประโยชน์สำหรับการใช้งานแบบโต้ตอบ
คุณสมบัติทั้งหมดของ ฉลาด(8) มีอยู่ในเครื่องมือ APT โดยเฉพาะ เช่น ฉลาดรับ(8) และ ฉลาดแคช(8) เช่นกัน ฉลาด(8) เพียงแค่เปลี่ยนค่าเริ่มต้นของบางตัวเลือก (ดู apt.conf(5) และโดยเฉพาะขอบเขตไบนารี) ดังนั้นคุณควรเลือกใช้คำสั่งเหล่านี้ (อาจเปิดใช้ตัวเลือกเพิ่มเติมบางอย่าง) ในสคริปต์ของคุณ เนื่องจากคำสั่งเหล่านี้รักษาความเข้ากันได้แบบย้อนหลังไว้ให้มากที่สุด
คุณกำลังใช้เครื่องมือที่ไม่ถูกต้อง วิธีที่ดีกว่าคือการใช้ dpkg
ตัวเอง:
dpkg -l | awk '$1 == "ii" {พิมพ์ $2}' > ติดตั้งแล้ว
sudo apt-get install $(ติดตั้ง cat)
รายละเอียด:
โดยวิธีการนี้ดูใจแคบ (เหมือนในคู่มือดีๆ นี้ บนชุมชน). คุณกำลังสูญเสียข้อมูลจำนวนมาก - ต้นกำเนิดของแพ็คเกจและคีย์ GPG
ยิ่งไปกว่านั้น วิธีการนี้จะล้มเหลวในการเกิดขึ้นครั้งแรกของแพ็คเกจที่ติดตั้งในเครื่องหรือแพ็คเกจที่ติดตั้งจาก PPA บางตัวที่ไม่มีอยู่ในเครื่องที่สอง
หากคุณต้องการบริการแบบรวมทุกอย่าง - ลองของฉัน สคริปต์หลาม ชื่อ srssud
(บันทึก/กู้คืนสคริปต์รายการซอฟต์แวร์สำหรับ Ubuntu และทรัพยากรหัวข้อ Debian)
มันจะบันทึกที่เก็บ APT ทั้งหมด, คีย์ GPG ของพวกเขา; รายการ Snaps, Flatpaks และ Ubuntu สร้างแอพเป็นไฟล์ JSON ตั้งแต่เครื่องแรก
จากนั้นคุณสามารถกู้คืนรายการนี้โดยใช้ไฟล์ JSON เดียวกันในเครื่องที่สอง