ฉันมีการตั้งค่าเครื่องหนึ่งแอพที่ฉันต้องการและฉันต้องการติดตั้งเหมือนกันในกล่อง Ubuntu ใหม่
มีสคริปต์ที่จะแสดงรายการแอพที่ติดตั้งทั้งหมดเพื่อให้ฉันสามารถแยกความแตกต่างระหว่างกล่องและเพิ่มรายการที่หายไปได้หรือไม่?
ขอบคุณล่วงหน้า Chris
ฉันมีการตั้งค่าเครื่องหนึ่งแอพที่ฉันต้องการและฉันต้องการติดตั้งเหมือนกันในกล่อง Ubuntu ใหม่
มีสคริปต์ที่จะแสดงรายการแอพที่ติดตั้งทั้งหมดเพื่อให้ฉันสามารถแยกความแตกต่างระหว่างกล่องและเพิ่มรายการที่หายไปได้หรือไม่?
ขอบคุณล่วงหน้า Chris
คำตอบ:
นอกจากนี้ยังมีเคล็ดลับ dpkg ที่กล่าวถึงโดย pjz คุณอาจต้องการดูetckeeper ( บทช่วยสอน ) - แอปที่ทำให้ / etc / * ของคุณอยู่ภายใต้การควบคุมเวอร์ชันทำให้ง่ายต่อการค้นหาการเปลี่ยนแปลงใด ๆ ที่คุณทำและทำซ้ำ เซิร์ฟเวอร์
นอกจากนี้สำหรับรายการที่สั้นกว่าที่สร้างโดยวิธีของ pjz คุณสามารถใช้
$ deborphan -a --no-show-section > /tmp/mypackagelist
นี่จะให้รายการของแพ็คเกจที่จะติดตั้งแพ็กเกจอื่น ๆ ทั้งหมดที่คุณต้องการเป็นการอ้างอิง มีประโยชน์หากคุณต้องการดูรายการ (dpkg - ตัวเลือกจะสร้างรายการloooong ) นอกจากนี้รายการสั้นพอที่คุณสามารถเพิ่มบรรทัดใหม่และแสดงความคิดเห็นออกรายการด้วย '#' จากนั้นเมื่อติดตั้งแพ็คเกจเพิ่มเติมที่คุณสามารถทำได้
$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y
วิธีนี้หากมีบางแพ็คเกจที่คุณต้องการติดตั้งในเครื่องบางเครื่องคุณไม่จำเป็นต้องลบแพ็กเกจออกจากรายการแพ็กเกจทั้งหมด
dpkg --get-selections >/tmp/mypackagelist
ควรทำเคล็ดลับ จากนั้นหลังจากตรวจสอบให้แน่ใจว่า /etc/apt/sources.list ของคุณบนเครื่องใหม่มีรายการเดียวกันกับที่เก่าให้คัดลอก mypackagelist ไปยังเครื่องใหม่และทำ:
cat mypackagelist | xargs apt-get -y install
และคุณควรจะไปดี
โปรดทราบว่าบรรทัด dpkg - get-selections ยังเป็นข้อมูลที่ดีที่จะใส่ลงใน / etc / dir ocassionally - นั่นหมายความว่าคุณไม่จำเป็นต้องสำรอง / bin / และ / usr / bin / เพราะคุณรู้ แพ็คเกจใดที่อยู่ในระบบ
dd
การร้อง
ฟอรัม Ubuntu มีคำตอบที่ดี
ลิงก์เพิ่มเติมจากการสนทนาในฟอรัม:
คำสั่ง dpkg ที่ดีกว่าอาจเป็น [เครื่องดั้งเดิม]
dpkg --get-selections | grep -v deinstall > packages_list
เมื่อทำการติดตั้ง [เครื่องใหม่; หลังจากโอน package_list]
sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade
หากคุณไม่ใช่แฟน CLI (แม้ว่าคุณควรจริง ๆ ) คุณสามารถใช้ตัวจัดการแพคเกจ Synaptic เพื่อบันทึกภาพของแพ็คเกจที่ติดตั้งและใช้ไฟล์นั้น (อีกครั้งผ่านทาง Synaptic) เพื่อโหลดเครื่องใหม่ ภายใต้ตัวเลือกการทำเครื่องหมายไฟล์ / บันทึกจะมีช่องทำเครื่องหมายเรียกว่า "บันทึกสถานะเต็ม"
ทำไมคุณไม่เพียงแค่ clonning เครื่องใช้dd
?
มีเครื่องมือที่เรียกว่า ReMasterSys ที่สามารถทำเพื่อคุณ ดูhttp://geekconnection.org/remastersys/
ฉันหวังว่าจะเป็นประโยชน์
การใช้FSArchiverเพื่อทำซ้ำเครื่องเป็นที่ยอมรับอย่างสมบูรณ์ มิฉะนั้นนี่คือคู่ของคำสั่งที่มีประโยชน์ในครึ่งแรกคุณสามารถเพิ่มลงใน cron สำรองของคุณได้:
debconf-get-selections
debconf-set-selections
~
aptitude-create-state-bundle
aptitude-run-state-bundle --unpack
~
dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections
ตำแหน่งที่คุณควรทำซ้ำคือ / etc และ / var คำสั่งข้างต้นจัดการไฟล์ไม่กี่ไฟล์ใน / var โดยตรงและบางไฟล์ conffiles ใน / etc โดยอ้อมผ่าน debconf คุณจะได้รับผลกระทบเดียวกันโดยเพียงแค่จำลองทรีย่อยเหล่านั้นและใช้ความสามารถ
ฉันเดาว่าDockerจะเป็นวิธีการทำเช่นนี้ในตอนนี้ - กำหนดข้อกำหนดใน Dockerfile - จากนั้นคุณสามารถเรียกใช้บนโฮสต์ Docker ใดก็ได้