เครื่องมือหรือเทคนิคในการรับการติดตั้ง linux ที่แตกต่างกัน


10

อ้าง Albert Einstein

บ้า: ทำสิ่งเดียวกันซ้ำแล้วซ้ำอีกและคาดหวังผลลัพธ์ที่แตกต่าง

บ่อยครั้งที่ Linux ทำให้ฉันโมโหเพราะฉันทำสิ่งเดียวกันซ้ำแล้วซ้ำอีกและได้ผลลัพธ์ที่แตกต่างกันไปในแต่ละกล่อง (ดูคำถามก่อนหน้าของฉัน )

สำหรับฉันพื้นที่ที่ใหญ่ที่สุดของความสับสนคือการยึดเครื่องที่มีคนอื่นติดตั้ง (เช่นกรณีเมื่อลงทะเบียนกับ บริษัท เว็บโฮสติ้ง) คุณแค่ไม่รู้ว่าคุณกำลังทำอะไรอยู่

มีเครื่องมือ diff ที่ฉลาดบางอย่างที่ฉันสามารถใช้กับการติดตั้ง Linux (Ubuntu) เพื่อให้ฉันดูว่าเครื่องนั้นเปลี่ยนทิศทางจากการติดตั้งเริ่มต้นหรือไม่

นั่นคือสิ่งที่สามารถแสดงรายการคำสั่งที่จะทำงานได้อย่างน่าประหลาดใจโดยหลีกเลี่ยงการลองผิดลองถูก


4
คุณจะไม่ได้รับ“ รายการคำสั่งที่จะทำงานอย่างแปลกใจ” ซอฟต์แวร์ไม่สามารถคาดเดาสิ่งที่คุณจะพบว่าน่าแปลกใจ
Gilles 'หยุดความชั่วร้าย' ใน

ขอบคุณ คำตอบเหล่านี้ทำให้ฉันเข้าใจวิธีจำลองพื้นที่ที่แตกต่างซึ่งเกี่ยวข้องกับสิ่งที่ต้องพิจารณาเมื่อยึดครองเครื่องที่มีคนอื่นติดตั้งไว้ จนถึงขณะนี้เรามีความแตกต่างใน: แพคเกจติดตั้ง , การเรียกใช้บริการ , การกำหนดค่าและระบบไฟล์ประเภท ฉันสนใจที่จะรู้ว่ามันเป็นหรือไม่มีที่สิ้นสุดรายการ? @Gilles - ใช่ด้วยความรู้ที่ จำกัด ของ linux ฉันพบว่ามันยากที่จะคาดเดาสิ่งที่ฉัน 'แปลกใจ' ด้วย!
JW01

1
รายการไม่มีที่สิ้นสุด ไม่ใช่ตัวอย่างของลีนุกซ์ แต่เมื่อไม่นานมานี้ Visual Studio จะไม่แสดงกล่องโต้ตอบบางอย่างในเครื่องใดเครื่องหนึ่ง (ไม่มีข้อผิดพลาดเพียงแค่พื้นที่ว่างที่ตัวควบคุมควรจะเป็น) ปรากฏว่ามีการติดตั้งแบบอักษรมากเกินไป คุณธรรมของเรื่องนี้คือมีมุมที่น่าประหลาดใจอยู่เสมอ
Gilles 'หยุดความชั่วร้าย'

คำตอบ:


10

เมื่อใดก็ตามที่ฉันมีระบบอ้างอิงที่ดีและระบบที่ไม่เหมาะสมฉันพยายามเปรียบเทียบกับ vimdiff สิ่งที่ฉันเปรียบเทียบแตกต่างกันไปตามปัญหาเช่น

1) เมื่อเปรียบเทียบเซิร์ฟเวอร์ที่ระดับแพ็คเกจฉันจะสร้างรายการแพ็กเกจที่เรียงลำดับในแต่ละเซิร์ฟเวอร์ส่งผลลัพธ์ไปยังไฟล์และแตกต่างกันเช่น

บนเซิร์ฟเวอร์ 1:

dpkg --get-selections|sort > server1_packages

บนเซิร์ฟเวอร์ 2:

dpkg --get-selections|sort > server2_packages

คัดลอกไฟล์ทั้งสองไปยังเครื่องเดียวกันและ diff (หรือ vimdiff)

2) ทำรายการบริการที่ทำงานอยู่ในตัวอย่างที่ 1

sysv-rc-conf --list|sort > server1_services

sysv-rc-conf --list|sort > server2_services

... ฯลฯ และ vimdiff เหล่านั้น

3) หากคุณกำลังแก้ไขปัญหาการกำหนดค่าที่ไม่สอดคล้องกับ Apache เช่นทำสำเนาไฟล์ config และ vimdiff เหล่านั้นเป็นต้น


2
สรุปตัวเลือกที่ดี เป็นความคิดที่ดีที่จะวางไฟล์ภาย/etcใต้การควบคุมเวอร์ชันเพื่อช่วยให้คุณสามารถติดตามสิ่งที่เกิดขึ้นได้ etckeeperจะทำสิ่งนี้เพื่อคุณ
Faheem Mitha

ฉันได้รับ "dpkg: ไม่สามารถเปิดไฟล์ข้อมูลแพคเกจ` / var / lib / dpkg / status 'สำหรับการอ่าน: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว " Centos กับ yum จะเป็นอย่างไร? PS ไม่เป็นไรพบว่า "ติดตั้งรายการยำ"
giorgio79

5

/etcส่วนใหญ่ของความแตกต่างระหว่างสองการติดตั้งของการกระจายเดียวกันจะอยู่ใน คัดลอกเนื้อหาของ/etcจากเครื่องหนึ่งไปยังไดเรกทอรีชั่วคราวบนอีกเครื่องและเรียกใช้

diff -ru /etc /copy/of/other/etc

หากคุณต้องการเปรียบเทียบเครื่องกับการติดตั้งเริ่มต้นให้รับสำเนาจากการติดตั้งเริ่มต้นใหม่ (อาจอยู่ในเครื่องเสมือน)

หากคุณสามารถควบคุมเครื่องได้ตั้งแต่เริ่มต้นตรวจสอบให้แน่ใจว่าได้ติดตั้งetckeeperให้/etcอยู่ภายใต้การควบคุมเวอร์ชัน จากนั้นคุณจะสามารถเห็นสิ่งที่เปลี่ยนแปลงไปอย่างแม่นยำ

แน่นอนว่าจะมีความแตกต่างมากมาย หากคุณยังไม่มีความคิดว่าจะดูที่ใดนี่เป็นแนวทางที่ผิดในการตรวจสอบความแตกต่างของพฤติกรรม ตัวอย่างเช่นสมมติว่าคำสั่งadduserทำงานต่างกันในสองเครื่อง วิธีที่ดีที่สุดคือดูว่าadduserกำลังทำอะไรอยู่ รันทั้งสองเครื่องและเปรียบเทียบ หากมีตัวเลือกที่จะบอกให้เป็น verbose มากขึ้น ( adduserไม่) ใช้มัน ให้เรียกใช้โปรแกรมภายใต้straceเช่น

strace -s9999 -efile adduser …

เพื่อดูว่าไฟล์ใดadduserเข้าถึง


2

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

ตัวอย่างชีวิตจริงที่เกิดขึ้นกับฉันในปี 2545: คนสองคนติดตั้งระบบ SuSE 7.3 บนเซิร์ฟเวอร์ที่ติดตั้งเข้ากับแร็คสองตัว พวกเขาใช้ความพยายามอย่างมากในการรับแพคเกจเดียวกันบนเซิร์ฟเวอร์ทั้งสอง อีกไม่นานเรามีปัญหากับซอฟต์แวร์บางอย่างในการพัฒนา มันลงมาสู่ระบบไฟล์ ext3 บนเซิร์ฟเวอร์ตัวหนึ่ง Reiserfs ที่อีกเซิร์ฟเวอร์หนึ่ง "ls" แบบธรรมดาบน Reiserfs ให้ชื่อไฟล์ตามลำดับคำศัพท์ แต่ไม่ใช่ใน ext3 โปรแกรมหนึ่งล้มเหลวในชื่อไฟล์ที่ล้าสมัย


1

สำหรับไฟล์ผู้ใช้กลุ่มแพคเกจบริการและอื่น ๆ ฉันใช้http://www.scriptrock.com ; ฟรีสำหรับเซิร์ฟเวอร์ไม่กี่แห่งและให้ภาพเปรียบเทียบความแตกต่างระหว่างเซิร์ฟเวอร์กับคุณอย่างเห็นได้ชัด .. มีประโยชน์มากสำหรับการล่องลอย

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