ติดตั้งแพ็คเกจเดเบียนเดียวกันบนระบบอื่น


13

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

คำตอบ:


17

ในการสำรองข้อมูล:

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 อย่างรวดเร็วเพื่อดูว่าเซิร์ฟเวอร์ขาดแพ็คเกจใดแพคเกจหนึ่งหรือไม่


1
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้สำหรับแต่ละบรรทัดอินพุต: dpkg: warning: package not in status nor available database at line ...
danorton

วิธีนี้ใช้งานไม่ได้ตั้งแต่รุ่น ubuntu บางรุ่น
QkiZ

10

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/…
TomRoche

[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 ของคุณ หรือรับรูทเพื่อรันบรรทัดนั้นโดยสันนิษฐานว่าเป็นสิ่งที่จำเป็น
TomRoche

0

เป็นความคิดที่ดีและคุณอาจตั้งค่าเซิร์ฟเวอร์หนึ่งเครื่องที่มีapt-proxyถ้าคุณสร้างนิสัยนี้


หลังจากเล่นกับพร็อกซี่หลายต่อหลายครั้งสำหรับฉันฉันก็ตัดสินใจที่จะ apt-cacher-ng apt-cacher-ng นั้นง่ายมากในการติดตั้งและจากหลาย ๆ บัญชีดูเหมือนว่าจะแข็งแกร่งกว่า apt-proxy ดั้งเดิม แต่ละคนมีความชอบเป็นของตัวเอง unix-ag.uni-kl.de/~bloch/acng
faultyserver

การลงคะแนนเสียงของฉันมีไว้สำหรับประมาณมันเป็นคนเดียวที่ไม่ใช่คนบ้า
womble

น่าสนใจ ... ฉันไม่ได้ลองทางเลือกใด ๆ

0

คำตอบ 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 (เจสซี))

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