Apakah ada cara untuk menentukan versi apa (Linux & versi kernel, saya kira) yang dijalankan (dari command-line), yang berfungsi pada sistem Linux?
Apakah ada cara untuk menentukan versi apa (Linux & versi kernel, saya kira) yang dijalankan (dari command-line), yang berfungsi pada sistem Linux?
Jawaban:
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:
$ cat /etc/issue
Biasanya (tidak selalu, akan memberi tahu Anda distribusi apa yang Anda gunakan. /etc/issue
adalah file yang digunakan untuk layar masuk.
\S[newline]Kernel \r on an \m
Inti: uname -a
cat /etc/os-release
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
Ini masalah juga dapat diselesaikan menggunakan Python dengan platform
modul :
Menggunakan platform()
fungsi:
python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6
Perintah di atas mengembalikan string tunggal yang mengidentifikasi platform yang mendasari dengan informasi yang berguna sebanyak mungkin.
Atau menggunakan uname()
fungsi:
python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')
Perintah di atas mengembalikan namedtuple()
berisi enam atribut: system
, node
, release
, version
, machine
, dan processor
.
Atau menggunakan dist()
fungsi:
python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')
Perintah terakhir mencoba untuk menentukan nama nama distribusi OS Linux , tetapi sudah usang karena Python 3.5 dan akan dihapus dalam Python 3.8 .