ฉันจะส่งออกรายการแพ็คเกจ Debian ที่ติดตั้งบนระบบแล้วติดตั้งแพคเกจเดิมบนระบบใหม่ได้อย่างไร
ฉันจะส่งออกรายการแพ็คเกจ Debian ที่ติดตั้งบนระบบแล้วติดตั้งแพคเกจเดิมบนระบบใหม่ได้อย่างไร
คำตอบ:
ในการสำรองข้อมูล:
sudo dpkg --get-selections > /tmp/dpkglist.txt
วิธีคืนค่า:
sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade
ดูคำถามนี้เพื่อดูตัวเลือกและข้อมูลเพิ่มเติม: Ubuntu วิธีการตั้งค่าเครื่องใหม่เช่นเดียวกับที่มีอยู่
ฉันมีการทำงานข้างต้นใน cronjob รายวันที่ตรวจสอบ dpgklist เป็น SVN เป็นส่วนหนึ่งของสินค้าคงคลังเซิร์ฟเวอร์ของเรา วิธีนี้จะช่วยให้คุณสามารถเก็บสินค้าคงคลังที่ถูกต้องเหมาะสมของแพคเกจที่ติดตั้งไว้ในเซิร์ฟเวอร์ของคุณและความง่ายในการทำ diff-by-side อย่างรวดเร็วเพื่อดูว่าเซิร์ฟเวอร์ขาดแพ็คเกจใดแพคเกจหนึ่งหรือไม่
aptitude
ยังสอดคล้องกับ usecase นี้และจะรักษาข้อมูลเกี่ยวกับแพ็คเกจ "ติดตั้งโดยอัตโนมัติ" ซึ่งวิธีการอื่นไม่ทำ รันสิ่งต่อไปนี้บนเครื่องอ้างอิง:
aptitude search -F '%p' '~i!~M' > package_list
คัดลอกpackage_list
ไปยังเครื่องอื่นและเรียกใช้
xargs aptitude --schedule-only install < package_list; aptitude install;
aptitude search -F '%p' '~i!~M' > package_list
ควรทำงานได้ดี
deborphan
@ bogdan.org.ua/2013/10/18/…
[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies]
เกี่ยวกับการคืนค่าแพ็คเกจ: สิ่งนี้จะต้องทำในฐานะ root ใช่ไหม? หากเป็นเช่นนั้น <br/> xargs
ใน commandline restore ของคุณ = xargs aptitude --schedule-only install <package_list; ความถนัดติดตั้ง; ทำให้ฉันอยากรู้ <br/> 1. ทำไมaptitude
ต้องมีxargs
? dpkg --set-selections
ไม่ <br/> 2. การสันนิษฐานaptitude
ไม่ต้องการxargs
สถานที่ที่จะวางหนึ่งหรือมากกว่านั้นsudo
ใน commandline restore ของคุณ หรือรับรูทเพื่อรันบรรทัดนั้นโดยสันนิษฐานว่าเป็นสิ่งที่จำเป็น
เป็นความคิดที่ดีและคุณอาจตั้งค่าเซิร์ฟเวอร์หนึ่งเครื่องที่มีapt-proxyถ้าคุณสร้างนิสัยนี้
คำตอบ faultyservers ทำงานสำหรับฉันเฉพาะหลังจากใช้คำสั่งที่แตกต่างกันตามhttp://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html
sudo apt-get install dselect
sudo dselect access
sudo dselect update
ก่อนที่จะวิ่ง
sudo apt-get dselect-upgrade
คืนเท่านั้น
[... ]
dpkg: คำเตือน: แพ็คเกจไม่ได้อยู่ในฐานข้อมูลที่สาย 302: xfonts-utils
dpkg: คำเตือน: พบแพ็คเกจที่ไม่รู้จัก นี้อาจหมายถึงฐานข้อมูลที่มีอยู่ล้าสมัยและความต้องการที่จะได้รับการปรับปรุงผ่านวิธีการส่วนหน้า
ปี่ @ FHEM ใหม่: tmp / $ sudo apt-get dselect-upgrade
อ่านรายการแพคเกจ ... เสร็จสิ้น
อาคารต้นไม้พึ่งพา
การอ่านข้อมูลของรัฐ ... เสร็จสิ้นการ
อัพเกรด 0, 0 ติดตั้งใหม่, 0 เพื่อลบและ 0 ไม่ได้อัพเกรด
ฉันพยายามติดตั้งแพ็กเกจเดิมจาก Raspberry Pi เก่าของฉัน (รัน Raspbian GNU / Linux 7 (เสียงดัง)) ใน Raspberry ใหม่ของฉัน (Raspbian GNU / Linux 8 (เจสซี))
dpkg: warning: package not in status nor available database at line ...