Ubuntu, วิธีการตั้งค่าเครื่องใหม่เหมือนเครื่องที่มีอยู่


27

ฉันมีการตั้งค่าเครื่องหนึ่งแอพที่ฉันต้องการและฉันต้องการติดตั้งเหมือนกันในกล่อง Ubuntu ใหม่

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

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

คำตอบ:


18

นอกจากนี้ยังมีเคล็ดลับ dpkg ที่กล่าวถึงโดย pjz คุณอาจต้องการดูetckeeper ( บทช่วยสอน ) - แอปที่ทำให้ / etc / * ของคุณอยู่ภายใต้การควบคุมเวอร์ชันทำให้ง่ายต่อการค้นหาการเปลี่ยนแปลงใด ๆ ที่คุณทำและทำซ้ำ เซิร์ฟเวอร์

นอกจากนี้สำหรับรายการที่สั้นกว่าที่สร้างโดยวิธีของ pjz คุณสามารถใช้

$ deborphan -a --no-show-section > /tmp/mypackagelist

นี่จะให้รายการของแพ็คเกจที่จะติดตั้งแพ็กเกจอื่น ๆ ทั้งหมดที่คุณต้องการเป็นการอ้างอิง มีประโยชน์หากคุณต้องการดูรายการ (dpkg - ตัวเลือกจะสร้างรายการloooong ) นอกจากนี้รายการสั้นพอที่คุณสามารถเพิ่มบรรทัดใหม่และแสดงความคิดเห็นออกรายการด้วย '#' จากนั้นเมื่อติดตั้งแพ็คเกจเพิ่มเติมที่คุณสามารถทำได้

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

วิธีนี้หากมีบางแพ็คเกจที่คุณต้องการติดตั้งในเครื่องบางเครื่องคุณไม่จำเป็นต้องลบแพ็กเกจออกจากรายการแพ็กเกจทั้งหมด


Etckeeper ดูน่าสนใจจริงๆ (+1)
jkp

17
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 / เพราะคุณรู้ แพ็คเกจใดที่อยู่ในระบบ


ใช่เจฟฟ์ แต่วิธีการเกี่ยวกับการแก้ไขไฟล์การกำหนดค่า? วิธีการเกี่ยวกับตัวเลือก dpkg-reconfigure? วิธีการเกี่ยวกับชื่อโฮสต์ ... ผู้ใช้หุ้นเมาท์ ... ดูการตอบสนองของฉันเกี่ยวกับddการร้อง
elcuco

2

ฟอรัม Ubuntu มีคำตอบที่ดี

  1. บนเครื่องเก่า: $ dpkg - get-selections> ซอฟต์แวร์ที่ติดตั้ง
    • นี่คือรายการแอปที่ติดตั้งของคุณ
  2. บนเครื่องใหม่: $ dpkg - set-selections
    • เป็นการตั้งค่าเครื่องใหม่ให้ติดตั้งแพ็คเกจที่ไม่ได้ติดตั้งบนเครื่องใหม่ในปัจจุบัน
    • อาจน่าสนใจที่จะดูว่าเครื่องใหม่มีบางแพ็คเกจที่ไม่ได้ติดตั้งบนเครื่องเก่าหรือไม่ดังนั้นคุณสามารถค้นหาคำสั่ง dpkg - get-selections> บนเครื่องใหม่แล้วใช้ diff เพื่อเปรียบเทียบไฟล์เอาต์พุตจากทั้งสอง
  3. ในที่สุดบนเครื่องใหม่: $ dselect และแพ็คเกจจะถูกติดตั้ง

ลิงก์เพิ่มเติมจากการสนทนาในฟอรัม:

  1. อย่าลืมกุญแจ gpg ของคุณ (จากชุดข้อความเดียวกัน)
  2. วิธีการติดตั้งแพ็กเกจที่ต้องการทั้งหมดและถอนการติดตั้งแพ็กเกจที่ไม่ต้องการทั้งหมด

2

คำสั่ง dpkg ที่ดีกว่าอาจเป็น [เครื่องดั้งเดิม]

dpkg --get-selections | grep -v deinstall > packages_list

เมื่อทำการติดตั้ง [เครื่องใหม่; หลังจากโอน package_list]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade

1

หากคุณไม่ใช่แฟน CLI (แม้ว่าคุณควรจริง ๆ ) คุณสามารถใช้ตัวจัดการแพคเกจ Synaptic เพื่อบันทึกภาพของแพ็คเกจที่ติดตั้งและใช้ไฟล์นั้น (อีกครั้งผ่านทาง Synaptic) เพื่อโหลดเครื่องใหม่ ภายใต้ตัวเลือกการทำเครื่องหมายไฟล์ / บันทึกจะมีช่องทำเครื่องหมายเรียกว่า "บันทึกสถานะเต็ม"


ผมคิดว่านี่เป็นวิธีการที่พบคอรี
jbdavid

1

ทำไมคุณไม่เพียงแค่ clonning เครื่องใช้dd?


1
นี้. เพียงโคลนเครื่องและเปลี่ยนชื่อมันเป็นวิธีที่เร็วที่สุดในการทำมัน
pjc50


1

การใช้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 คุณจะได้รับผลกระทบเดียวกันโดยเพียงแค่จำลองทรีย่อยเหล่านั้นและใช้ความสามารถ


0

ฉันเดาว่าDockerจะเป็นวิธีการทำเช่นนี้ในตอนนี้ - กำหนดข้อกำหนดใน Dockerfile - จากนั้นคุณสามารถเรียกใช้บนโฮสต์ Docker ใดก็ได้

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