iki farklı linux kurulumunun farkını elde etmek için araç veya teknik


10

Albert Einstein alıntı

Delilik: Aynı şeyi tekrar tekrar yapmak ve farklı sonuçlar beklemek

Çoğu zaman Linux beni deli ediyor çünkü aynı şeyi tekrar tekrar yapıyorum ve kutudan kutuya farklı sonuçlar alıyorum . ( Önceki soruma bakın ).

Benim için, en büyük karışıklık alanı (başka bir web barındırma şirketi ile kayıt olduğu gibi) başkasının yüklediği bir makine devralıyor. Ne ile uğraştığını bilmiyorsun.

Bana bir makine (Ubuntu) kurulumunda çalıştırabileceğim, makinenin varsayılan kurulumdan nasıl saptığını gösteren bir tür akıllı fark aracı var mı?

Yani bana şaşırtıcı bir şekilde davranacak ve böylece bir deneme yanılma yaklaşımından kaçınacak olan komutların bir listesini gösterebilecek bir şey.


4
“Şaşırtıcı bir şekilde davranacak olan komutların bir listesini” elde edemezsiniz. Yazılım şaşırtıcı bulacağınızı tahmin edemez.
Gilles 'SO- kötü olmayı bırak'

Teşekkürler. Bu cevaplar bana , başka birinin kurduğu bir makineyi ele geçirirken dikkate alınması gereken ilgili fark alanlarının nasıl modelleneceğini daha iyi anlamamı sağlıyor . Şimdiye kadar farklarımız var: kurulu paketler , çalışan hizmetler , konfigürasyonlar ve dosya sistemi tipi . Bu kadar mı yoksa liste sonsuz mu diye merak ediyorum. @Gilles - evet, sınırlı linux bilgisi ile, kendimi de 'şaşırtıcı' bulacağımı tahmin etmekte zorlanıyorum!
JW01

1
Liste sonsuzdur. Linux örneği değil, bir süre önce, Visual Studio belirli bir makinede bazı iletişim kutuları göstermezdi (hata yok, sadece kontrollerin olması gereken boş alan). Çok fazla yazı tipi yüklü olduğu ortaya çıktı. Bu hikayenin ahlaki, her zaman köşelerde gizlenen sürprizler olacağıdır.
Gilles 'SO- kötü olmayı bırak'

Yanıtlar:


10

Ne zaman iyi bir referans sistemim ve kötü niyetli bir sistemim varsa, onları vimdiff ile karşılaştırmaya çalışıyorum. Karşılaştırdığım soruna göre değişir, örn.

1) Sunucuları paket düzeyinde karşılaştırırken, her sunucuda sıralı paket listeleri oluşturuyorum, sonuçları dosyalara gönderiyorum ve farklılaştırıyorum, örn.

Sunucuda1:

dpkg --get-selections|sort > server1_packages

Sunucuda2:

dpkg --get-selections|sort > server2_packages

Her iki dosyayı da aynı makineye kopyalayın ve dif (veya vimdiff) yapın.

2) Örnek 1'deki gibi çalışan hizmetlerin bir listesini yapın

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

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

... vb. ve bunları vimdiff.

3) Örneğin Apache ile tutarsız yapılandırmalarda sorun gidermeye çalışıyorsanız, yapılandırma dosyalarının kopyalarını oluşturun ve bunları vimdiff yapın.


2
Seçeneklerin iyi bir özeti. /etcNeler olup bittiğini takip etmenize yardımcı olmak için dosyaları sürüm kontrolü altına koymak da iyi bir fikirdir . etckeeperbunu sizin için yapacak.
Faheem Mitha

"Dpkg: okuma için paket bilgi dosyası` / var / lib / dpkg / status 'açılamadı: Böyle bir dosya veya dizin yok "alıyorum. Bu yum ile Centos'a nasıl görünürdü? PS Nevermind, bulundu "yum listesi yüklü"
giorgio79

5

Aynı dağıtımın iki kurulumu arasındaki farkların çoğu içinde olacaktır /etc. /etcBir makineden diğerini geçici bir dizine kopyalayın ve çalıştırın

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

Bir makineyi varsayılan yüklemeyle karşılaştırmak istiyorsanız, yeni bir varsayılan yüklemeden (belki de sanal bir makinede) bir kopya alın.

Bir makineyi en başından kontrol edebiliyorsanız , /etcsürüm kontrolü altında tutmak için etckeeper yüklediğinizden emin olun . Sonra neyin değiştiğini tam olarak görebileceksiniz.

Tabii ki, çok fazla fark olacak. Nereye bakacağınız hakkında henüz bir fikriniz yoksa, davranıştaki belirli bir farkı araştırmak için yanlış yaklaşım budur. Örneğin, komutun adduseriki makinede farklı davrandığını varsayalım. O zaman en iyi yaklaşım ne adduseryaptığına bakmaktır ; her iki makinede de çalıştırın ve karşılaştırın. Daha ayrıntılı ( adduserdeğil) olduğunu söyleme seçeneği varsa , kullanın. Daha radikal olarak, programı strace altında çalıştırın , örn.

strace -s9999 -efile adduser …

hangi dosyaların addusereriştiğini görmek için .


2

Daha önceki bir soruya geri dönmek için, benim için iyi bir fikir gibi görünen şık aracınızın var, ancak böyle bir canavarı hiç duymadım, dosya sistemi türü ve boyutları gibi şeyleri kontrol etmesi gerekiyor.

2002'de başıma gelen gerçek bir hayat örneği: iki kişi, komşu rafa monte edilmiş iki sunucuya SuSE 7.3 sistemlerini kurdu. Paketleri her iki sunucuda da tamamen aynı hale getirmek için çok çaba sarf ediyorlar. Kısa bir süre sonra, geliştirilmekte olan bazı yazılımlarla ilgili sorunlar yaşadık. Bir sunucuda ext3 dosya sistemine, diğer sunucuda Reiserfs'e indi. Reiserfs üzerinde düz bir "ls" dosya adları sözlü sırayla verir, ancak ext3 üzerinde değil. Bir program sıra dışı dosya adlarında başarısız oldu.


1

Dosyalar, kullanıcılar, gruplar, paketler, hizmetler vb. İçin http://www.scriptrock.com ; birkaç sunucu için ücretsizdir ve sunucular arasındaki farkların güzel bir görsel karşılaştırmasını sağlar .. sürüklenme için çok kullanışlı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.