Apakah ada cara untuk menentukan versi apa (Linux & versi kernel, saya kira) yang dijalankan (dari command-line), yang berfungsi pada sistem Linux?
sumber
Apakah ada cara untuk menentukan versi apa (Linux & versi kernel, saya kira) yang dijalankan (dari command-line), yang berfungsi pada sistem Linux?
Kernel terdeteksi secara universal dengan uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
Sebenarnya tidak ada cara distribusi silang untuk menentukan distribusi dan versi apa yang Anda gunakan. Ada upaya untuk membuat ini konsisten, tetapi pada akhirnya itu bervariasi, sayangnya. Alat LSB memberikan informasi ini, tetapi ironisnya tidak diinstal secara default di mana-mana. Contoh pada sistem Ubuntu 9.04 dengan lsb-release
paket diinstal:
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Jika tidak, metode terdekat yang tersedia luas adalah memeriksa file. Ini ada di sebagian besar platform umum, dan pada turunannya (yaitu, Red Hat dan CentOS)./etc/something-release
Berikut ini beberapa contohnya.
Ubuntu memiliki /etc/lsb-release
:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
Tapi Debian memiliki /etc/debian_version
:
$ cat /etc/debian_version
5.0.2
Fedora, Red Hat dan CentOS memiliki:
Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)
Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)
newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
Gentoo:
$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1
Saya tidak memiliki sistem SUSE yang tersedia saat ini, tetapi saya percaya itu /etc/SuSE-release
.
Slackware memiliki /etc/slackware-release
dan / atau /etc/slackware-version
.
Mandriva punya /etc/mandriva-release
.
Untuk sebagian besar distribusi populer,
$ cat /etc/*{release,version}
akan paling sering bekerja. Instalasi stripped down dan barebones "server" mungkin tidak memiliki paket 'rilis' untuk distribusi yang diinstal.
Selain itu, dua program pihak ke-3 yang dapat Anda gunakan untuk mendapatkan informasi ini secara otomatis adalah Ohai dan Facter .
Perhatikan bahwa banyak distribusi memiliki jenis informasi ini dalam /etc/issue
atau /etc/motd
, tetapi beberapa kebijakan keamanan dan praktik terbaik menunjukkan bahwa file-file ini harus mengandung spanduk pemberitahuan akses.
Terkait: Bagaimana mengetahui versi paket perangkat lunak yang diinstal pada node? , Wayang .
Anda juga dapat mencoba:
Biasanya (tidak selalu, akan memberi tahu Anda distribusi apa yang Anda gunakan.
/etc/issue
adalah file yang digunakan untuk layar masuk.sumber
\S[newline]Kernel \r on an \m
Inti:
uname -a
sumber
minimal untuk Ubuntu, Fedora dan OpenSUSE.
Tidak bekerja untuk OS X setidaknya hingga 10.9 (Mavericks). Gunakan sw_vers sebagai gantinya.
OpenSUSE memiliki rilis cat / etc / SuSE hingga 13.1 tetapi sudah usang karena os-release.
Redhat 6.1 memiliki cat / etc / redhat-release
sumber
lsb_release -a
, jika tersedia, berguna.sumber
cat /proc/version
menemukan saya Red Hat di VPS bersama.sumber
Inti:
uname -r
Distro:
lsb_release -a
Ini akan berjalan di sebagian besar sistem Linux
sumber
Satu garis
sumber
Ini masalah juga dapat diselesaikan menggunakan Python dengan
platform
modul :Menggunakan
platform()
fungsi:Perintah di atas mengembalikan string tunggal yang mengidentifikasi platform yang mendasari dengan informasi yang berguna sebanyak mungkin.
Atau menggunakan
uname()
fungsi:Perintah di atas mengembalikan
namedtuple()
berisi enam atribut:system
,node
,release
,version
,machine
, danprocessor
.Atau menggunakan
dist()
fungsi:Perintah terakhir mencoba untuk menentukan nama nama distribusi OS Linux , tetapi sudah usang karena Python 3.5 dan akan dihapus dalam Python 3.8 .
sumber