Saya mencoba menentukan rasa server linux yang sedang berjalan. Saya tidak mencoba menentukan versi kernel - tetapi mendaftar ulang distributor.
gcc diinstal, dan dalam versi keluaran, dikatakan RedHat
# gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-11)
Apakah ini berarti saya dapat dengan aman menganggap server saya adalah server RedHat. Apakah ada metode antipeluru yang lebih baik - 100% untuk mengetahuinya? Juga untuk rasa linux lainnya - bukan hanya server ini?
Sunting: isi /etc/
kalau-kalau itu membantu - tapi saya ingin solusi yang bekerja untuk versi lain dari linux juga.
# ls /etc/
./ backupmxhosts domainusers host.conf localdomains mailips pam.d/ relayhosts shadow trustedmailhosts
../ bashrc* exim.conf inputrc localtime man.config passwd resolv.conf skipsmtpcheckhosts userdomains
DIR_COLORS cron.deny exim.pl ld.so.cache lynx.cfg mtab profile secondarymx spammeripblocks vimrc
aliases demodomains exim.pl.local* ld.so.conf mail/ my.cnf profile.d/ senderverifybypasshosts sudoers
antivirus.exim demouids group localaliases mailhelo nsswitch.conf protocols services termcap
Saya tidak punya *release
atau *version
file masuk/etc/
# ls /etc*release; ls /etc/*version
/bin/ls: /etc/*release: No such file or directory
/bin/ls: /etc/*version: No such file or directory
Saya mencoba LSB
# lsb_release -a
LSB Version:
Distributor ID: n/a
Description: (none)
Release: n/a
Codename: n/a
Juga - saya kira saya berada di dalam chroot jail
(tidak benar-benar yakin apa itu) yang mungkin bisa menjadi penyebab masalah ini.
Diperbarui:
Saya pikir ini melakukannya untuk saya. Saya pikir saya dapat dengan aman menganggap saya menggunakan cent-os.
# cat /proc/version
Linux version 2.6.9-103.plus.c4smp ([email protected]) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Wed Dec 21 16:17:23 EST 2011
Jawaban:
Contoh:
Ubuntu:
Topi Merah / CentOS:
Lihat juga Bagaimana Mengetahui Distribusi Linux Yang Anda Gunakan?
sumber
Pada sebagian besar distro Linux modern, perintah berikut akan memberi Anda informasi:
sumber
yum install redhat-lsb-core
./etc/issue
mungkin merupakan titik awal yang baik.Lebih banyak dapat ditemukan dengan memeriksa file info untuk distribusi yang berbeda:
Lihat forum Unix untuk lebih jelasnya.
sumber
release
atauversion
dalametc
direktori sayaJika
/etc/issue
tidak ada, mungkin ada satu atau lebih/etc/*_release
file.Sebagai contoh, sistem Ubuntu saya memiliki
/etc/lsb-release
:Sistem CentOS seorang teman (berdasarkan Red Hat) memiliki
/etc/redhat-release
:Saya tidak tahu seberapa universal ini.
sumber
release
atauversion
file di saya/etc/
cat / etc / issue dapat menjawab pertanyaan Anda.
Pembuat distro tidak ramah kepada Anda di sini. Pertama, masing-masing berpikir itu adalah satu-satunya cara yang benar.
Kemungkinan besar, alih-alih mencoba mengendus distro, Anda harus melihat lebih detail pada pertanyaan tertentu yang sebenarnya perlu Anda jawab. Fokus pada fungsi yang Anda lihat, bukan distro yang menyediakannya. Lagi pula, versi baru dari sebuah distro dapat berbalik dan bergerak ke arah yang berlawanan pada sumbu tertentu.
sumber
/etc/issue
di server saya/etc/issue
mungkin mengandung urutan melarikan diri seperti\n
dan\l
. Untuk melihat apa artinya ini,man 5 issue
danman getty
(/etc/issue
file ini terutama ditujukan untuk digunakan olehgetty
). Tentu saja pemilik sistem dapat mengedit/etc/issue
karena beberapa alasan jahat./etc/issue
perlu ada, atau mengandung informasi apa pun tentang vendor distribusi. Biasanya memang begitu, tapi saya rasa Anda tidak bisa mengandalkannya.Gunakan
facter
(ya begitulah cara mengejanya).Facter adalah pendamping wayang, ia menyediakan variabel yang dapat ditanyakan yang berisi informasi tentang sistem.
Sebagai contoh, berikut ini hanya beberapa dari puluhan variabel yang dapat dikembalikan faktor
Anda bisa menanyakan fakta osfamily untuk melihat server menjalankan RedHat
Lihat dokumentasinya: http://puppetlabs.com/facter
sumber
uname -a
Bekerja selalu untuk Tux apa pun
sumber
Tidak ada satu pun cara pasti untuk melakukan ini. Saya mengajukan pertanyaan serupa di unix.se dan cara terbaik untuk mendapatkan info ini adalah skrip yang memeriksa berbagai sumber:
Pilihan lain memang menggunakan
gcc --version
, karenagcc
selalu dikompilasi untuk distro tertentu, ini akan relatif portabel. Saya sangat menyarankan Anda membaca jawaban yang diterima pada pertanyaan saya di U&L itu menjelaskan situasinya dengan sangat baik.sumber
Perintah ini berfungsi untuk distribusi berbasis Debian dan Redhat: Menggunakan filter tr, Anda mengonversi dokumen ke format satu kata per baris dan kemudian menghitung baris pertama yang berisi nama distribusi.
sumber
Thos adalah metode terbaik
sumber
/etc
direktori saya di pertanyaan. Sebagaimana dibahas pada jawaban lain, solusi ini tidak berhasil untuk saya./etc/
direktori dan Anda dapat melihat bahwa tidak ada file di sana berakhir direlease