alat atau teknik untuk mendapatkan dua instalasi linux yang berbeda

10

Kutipan Albert Einstein

Kegilaan: melakukan hal yang sama berulang-ulang dan mengharapkan hasil yang berbeda

Seringkali, Linux membuat saya marah karena saya melakukan hal yang sama berulang kali dan mendapatkan hasil yang berbeda dari kotak ke kotak. (Lihat pertanyaan saya sebelumnya ).

Bagi saya, wilayah kebingungan terbesar adalah mengambil alih mesin yang dipasang orang lain (seperti halnya ketika mendaftar dengan perusahaan web hosting). Anda tidak tahu apa yang Anda hadapi.

Apakah ada beberapa jenis alat pintar yang dapat saya jalankan di instalasi Linux (Ubuntu) untuk memberi saya informasi tentang bagaimana mesin itu membelok dari instalasi default?

yaitu Sesuatu yang dapat menunjukkan kepada saya daftar perintah yang akan berperilaku mengejutkan sehingga menghindari pendekatan coba-coba.

JW01
sumber
4
Anda tidak akan mendapatkan "daftar perintah yang akan berperilaku mengejutkan". Perangkat lunak tidak dapat memprediksi apa yang menurut Anda mengejutkan.
Gilles 'SANGAT berhenti menjadi jahat'
Terima kasih. Jawaban-jawaban ini memberi saya pemahaman yang lebih baik tentang bagaimana memodelkan bidang perbedaan yang perlu dipertimbangkan saat mengambil alih mesin yang telah dipasang orang lain. Sejauh ini kami memiliki perbedaan dalam: paket yang diinstal , menjalankan layanan , konfigurasi dan tipe sistem file . Saya tertarik untuk mengetahui apakah hanya itu atau apakah daftarnya tidak terbatas? @Gilles - ya, dengan pengetahuan linux yang terbatas, saya kesulitan memprediksi apa yang akan saya 'temukan mengejutkan' juga!
JW01
1
Daftar ini tidak terbatas. Bukan contoh Linux, tetapi beberapa waktu yang lalu, Visual Studio tidak akan menampilkan beberapa kotak dialog pada mesin tertentu (tidak ada kesalahan, hanya ruang kosong di mana kontrol seharusnya). Ternyata karena terlalu banyak font yang diinstal. Moral dari cerita ini adalah selalu ada kejutan yang mengintai di sudut-sudut.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

10

Setiap kali saya memiliki sistem referensi yang baik dan yang nakal, saya mencoba membandingkannya dengan vimdiff. Apa yang saya bandingkan bervariasi dengan masalahnya, misalnya

1) Ketika membandingkan server di tingkat paket, saya membuat daftar paket yang diurutkan pada setiap server, mengirimkan hasilnya ke file dan memperbaikinya, mis.

Di server1:

dpkg --get-selections|sort > server1_packages

Di server2:

dpkg --get-selections|sort > server2_packages

Salin kedua file ke mesin yang sama dan lakukan diff (atau vimdiff).

2) Buat daftar layanan yang berjalan seperti pada contoh 1

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

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

... dll., dan coba lakukan itu.

3) Jika Anda memecahkan masalah konfigurasi yang tidak konsisten dengan Apache misalnya, buat salinan dari file-file konfigurasi, dan perbaiki itu, dll.

Karl
sumber
2
Ringkasan opsi yang bagus. Sebaiknya letakkan file di /etcbawah kontrol versi untuk membantu Anda melacak apa yang sedang terjadi. etckeeperakan melakukan ini untukmu.
Faheem Mitha
Saya mendapatkan "dpkg: gagal membuka file info paket` / var / lib / dpkg / status 'untuk dibaca: Tidak ada file atau direktori ". Bagaimana ini terlihat pada Centos dengan yum? PS Nevermind, menemukannya "daftar yum diinstal"
giorgio79
5

Sebagian besar perbedaan antara dua instalasi dari distribusi yang sama akan berada di /etc. Salin konten /etcdari satu mesin ke direktori sementara di yang lain dan jalankan

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

Jika Anda ingin membandingkan mesin dengan instalasi default, dapatkan salinan dari instalasi default baru (mungkin di mesin virtual).

Jika Anda dapat mengontrol mesin dari awal, pastikan untuk menginstal etckeeper untuk tetap di /etcbawah kontrol versi. Maka Anda akan dapat melihat dengan tepat apa yang berubah.

Tentu saja, akan ada banyak perbedaan. Jika Anda belum memiliki gagasan tentang ke mana harus mencari, ini adalah pendekatan yang salah untuk menyelidiki perbedaan perilaku tertentu. Sebagai contoh, katakanlah perintah adduserberperilaku berbeda pada dua mesin. Maka pendekatan terbaik adalah melihat apa yang addusersedang dilakukan; jalankan di kedua mesin dan bandingkan. Jika ia memiliki opsi untuk mengatakannya lebih bertele-tele adduser, jangan gunakan. Lebih radikal lagi, jalankan program di bawah strace , mis

strace -s9999 -efile adduser …

untuk melihat file apa yang adduserdiakses.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
2

Untuk kembali ke pertanyaan sebelumnya, alat bagus Anda, yang terdengar seperti ide bagus bagi saya, tetapi saya belum pernah mendengar tentang beast yang ada, perlu memeriksa hal-hal seperti jenis dan ukuran sistem file.

Contoh nyata yang terjadi pada saya pada tahun 2002: dua orang memasang sistem SuSE 7.3 pada dua server yang dipasang di rak. Mereka berusaha keras untuk mendapatkan paket yang persis sama di kedua server. Beberapa saat kemudian, kami mengalami masalah dengan beberapa perangkat lunak dalam pengembangan. Itu turun ke sistem file ext3 di satu server, Reiserfs di yang lain. "Ls" polos pada Reiserfs memberikan nama file dalam urutan leksikal, tetapi tidak pada ext3. Satu program gagal pada nama file yang rusak.

Bruce Ediger
sumber
1

Untuk file, pengguna, grup, paket, layanan, dll. Saya telah menggunakan http://www.scriptrock.com ; gratis untuk beberapa server dan memberi Anda perbandingan visual yang bagus tentang perbedaan antara server..sangat berguna untuk penyimpangan

mikrofon
sumber