Score:1

คัดลอกรายการซอฟต์แวร์ที่ติดตั้งด้วยตนเองจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งด้วยเวอร์ชันเดียวกัน

ธง pk

ฉันมีเซิร์ฟเวอร์ 2 ตัวสมมติว่า เซิร์ฟเวอร์1 และ เซิร์ฟเวอร์2

เซิร์ฟเวอร์1 มีการกำหนดค่ามานานแล้วโดยบางคนที่มีแพ็คเกจหลายแพ็คเกจและแอปพลิเคชันของเรามีการอ้างอิงมากมายในแพ็คเกจเหล่านั้น ดังนั้นฉันต้องการดูแลชุดแพ็คเกจเดียวกันในเซิร์ฟเวอร์ใหม่ เช่นเซิร์ฟเวอร์ 2 เพื่อเรียกใช้แอปพลิเคชันของเราอย่างราบรื่น

ฉันใช้คำสั่งด้านล่างเพื่อแสดงรายการแพ็คเกจทั้งหมดจาก เซิร์ฟเวอร์1

 dpkg-get-selections> ~/package.list

ซึ่งให้รายการแพ็คเกจทั้งหมดเช่น

การติดตั้งบัญชี
การติดตั้ง ACPID
การติดตั้ง Adduser
การติดตั้ง AMD64-microcode
...
...

ฉันทำสำเนาของรายการแพ็คเกจด้านบนใน เซิร์ฟเวอร์2 และพยายามติดตั้งแพ็คเกจเหล่านั้นโดยใช้คำสั่ง

sudo dpkg-การเลือกเซ็ต <~/package.list

แต่มันบอกว่าชอบ

DPKG: คำเตือน: แพ็คเกจไม่อยู่ในสถานะหรือฐานข้อมูลที่มีอยู่ที่บรรทัดที่ 2: ACPID
DPKG: คำเตือน: แพ็คเกจไม่อยู่ในสถานะหรือฐานข้อมูลที่มีอยู่ที่บรรทัดที่ 4: AMD64-microcode
DPKG: คำเตือน: แพ็คเกจไม่อยู่ในสถานะหรือฐานข้อมูลที่มีอยู่ที่บรรทัด 12: Apt-Transport-Https
DPKG: คำเตือน: แพ็คเกจไม่อยู่ในสถานะหรือฐานข้อมูลที่มีอยู่ที่บรรทัดที่ 14: APT-XAPIAN-INDEX
...
...

มีวิธีอื่นในการรักษาชุดแพ็คเกจเดียวกันในเซิร์ฟเวอร์ทั้งสองหรือไม่?

ทั้งสองเป็นระบบปฏิบัติการเดียวกันกับเวอร์ชันที่แตกต่างกัน (Server1: Ubuntu 14.04 และ Server2: Ubuntu 20.04) และฉันต้องการเฉพาะแพ็คเกจที่ติดตั้งผู้ใช้

อัปเดต:

รายการ apt -- ติดตั้ง

คำสั่งด้านบนแสดงเช่น

AccountSservice/trusty-updates ตอนนี้ 0.6.35-0UBUNTU7.3 AMD64 [ติดตั้ง]
ACPID/Trusty ตอนนี้ 1: 2.0.21-1UBUNTU2 AMD64 [ติดตั้ง]
Adduser/Trusty ตอนนี้ 3.113+NMU3UBUNTU3 ทั้งหมด [ติดตั้ง]
AMD64-MICROCODE/TRERTY-UPDATES ตอนนี้ 3.20180524.1 ~ UBUNTU0.14.04.2+จริง ๆ 20130710.1UBUNTU1 AMD64 [ติดตั้งอัตโนมัติ]
apache2/trusty-updates,trusty-security ตอนนี้ 2.4.7-1ubuntu4.22 amd64 [ติดตั้งแล้ว]
...

มันแสดงแพ็คเกจพร้อมเวอร์ชัน เป็นไปได้ไหมที่ฉันสามารถบันทึกผลลัพธ์ของเอาต์พุตนี้และเรียกใช้ เซิร์ฟเวอร์2 เพื่อที่ฉันจะได้มี Package เดียวกันกับรุ่นเดียวกัน

user535733 avatar
cn flag
วิธีการของคุณน่าจะใช้ไม่ได้: Ubuntu 14.04 (จดชื่อที่ถูกต้อง ติดเป็นนิสัย) แตกต่างจาก Ubuntu 20.04 มากเกินไป (จดชื่อที่ถูกต้องอีกครั้ง) มีการเปลี่ยนแพ็คเกจมากเกินไปในช่วงหกปี
Shashank Gb avatar
pk flag
ฉันไม่ต้องการติดตั้งแพ็คเกจ inbuilt ฉันต้องการรายการเฉพาะที่ผู้ใช้ติดตั้ง
Score:2
ธง cn

รายการ dpkg คือแอปทั้งหมด แต่จะติดตั้งเฉพาะแอปอื่นเท่านั้น มักจะดีที่สุดในการแก้ไขเมล็ดเก่า

จากการติดตั้งแบบเก่า

dpkg --get-selections > ~/my-packages.dpkg

จากการติดตั้งใหม่:

sudo apt-get -y อัพเดต
sudo apt-get dselect-upgrade
#หากคุณได้รับข้อผิดพลาดนี้:
dpkg: คำเตือน: แพ็คเกจไม่อยู่ในฐานข้อมูล
sudo apt-get install dselect
sudo dselect 
   -> อัปเดต
   -> ติดตั้ง

รายการแบบตารางของแพ็คเกจที่ติดตั้งด้วยตนเองทั้งหมดสามารถรับได้โดยใช้ความถนัดซึ่งคุณอาจต้องติดตั้ง:

ค้นหาความถนัด '~i!~M'

แอปพลิเคชั่นระดับบนสุด:

ความถนัด --disable-columns -F 'no_dependents %p' ค้นหา '~i!~M!~R(~i)'

แต่คุณอาจต้องเพิ่มการติดตั้งในทุกบรรทัด

วิธีแสดงรายการแพ็คเกจที่ติดตั้งทั้งหมด

วิธีแสดงรายการแอปพลิเคชันที่คุณติดตั้ง

วิธีแสดงรายการแพ็คเกจที่ติดตั้งทั้งหมด

Shashank Gb avatar
pk flag
ใช่ ตอนนี้ฉันมีรายการแพ็คเกจที่ติดตั้งด้วยตนเองโดยใช้ `aptitude search '~i!~M' > แพ็คเกจ `. ตอนนี้วิธีใช้รายการนี้ในเซิร์ฟเวอร์ 2 ฉันสามารถใช้ `dselect` ได้อีกครั้ง
oldfred avatar
cn flag
ไม่ได้ใช้ความถนัด แต่ฉันคิดว่าเป็นเพียงรายการแอพ ในการใช้ยกเลิกการเลือกนั้นคาดว่าจะมี 2 คอลัมน์ หนึ่งชื่อแอปและการติดตั้งครั้งที่สอง การส่งออก dpkg อาจรวมการถอนการติดตั้งเป็นรายการในคอลัมน์ที่สอง ซึ่งหมายความว่าได้ถอนการติดตั้งแล้ว & จะไม่ถูกติดตั้งใหม่ ลิงค์แสดงคำสั่ง set เพื่อเพิ่มการติดตั้งในแต่ละบรรทัดโดยใช้ sed
Score:2
ธง cn

หากเป็นระบบของฉัน ฉันจะทำดังนี้

แพ็คเกจที่ติดตั้งโดยผู้ใช้จะถูกติดตามโดย apt-marking (ดู ผู้ชาย apt-mark.)

อย่างไรก็ตาม มีปัญหาเล็กน้อย: apt-marks ของตัวติดตั้ง Ubuntu ทุกอย่าง ในการติดตั้งสต็อกของ Ubuntu เป็นการติดตั้งด้วยตนเอง เป็นมาตรการด้านความปลอดภัยเพื่อให้ผู้ใช้ไม่ต้องถอนการติดตั้งเดสก์ท็อปอย่างผิดพลาด

ดังนั้นจึงเป็นการลบอย่างง่าย ๆ (ประเภท): รายการแพ็คเกจด้วยตนเองทั้งหมดลบด้วยรายการแพ็คเกจการติดตั้งสต็อก

  1. รับรายการแพ็คเกจในระบบ 14.04 ของคุณที่มีเครื่องหมาย apt-marked "manual"

    apt-mark คู่มือการแสดง > เซิร์ฟเวอร์1
    
  2. หมุน VM ด้วยการติดตั้ง Ubuntu 14.04 ใหม่ และทำสิ่งเดียวกัน

    apt-mark แสดงคู่มือ > สด
    
  3. แยกความแตกต่างของทั้งสองไฟล์

    diff --suppress-common-line เซิร์ฟเวอร์ใหม่ 1
    
  4. ดูรายการสั้น ๆ ที่เกิดขึ้นทีละบรรทัด คุณต้องกำจัดแพ็คเกจเคอร์เนล ตรวจสอบแพ็คเกจที่ทิ้งหรือเปลี่ยนชื่อหรือเปลี่ยนแปลง เพิ่มแพ็คเกจที่ไม่ได้เป็นส่วนหนึ่งของการติดตั้งสต็อกอีกต่อไป ฯลฯ ไม่มีวิธีที่ง่ายหรืออัตโนมัติในการดำเนินการ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา