it-swarm.asia

Hangi Linux çalıştığını biliyorsun nasıl öğrenebilirim?

Herhangi bir Linux sisteminde hangi Linux sürümünün (dağıtım ve çekirdek sürümünün, sanırım) çalıştığını belirlemenin bir yolu var mı?

204
Daryl Spitzer

Çekirdek evrensel uname ile tespit edilir:

$ uname -or
2.6.18-128.el5 GNU/Linux

Hangi dağıtım ve sürümde olduğunuzu belirlemek için bir dağıtım yolu bulunmuyor. Bunu tutarlı hale getirmek için girişimlerde bulunuldu, ama nihayetinde, ne yazık ki, çeşitlilik gösteriyor. LSB araçları bu bilgiyi sağlar, ancak varsayılan olarak her yere varsayılan olarak kurulmaz. lsb-release paketi kurulu olan bir Ubuntu 9.04 sistemine örnek:

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

Aksi takdirde, en yaygın olarak kullanılan yöntem /etc/something-release dosyalarını kontrol etmektir. Bunlar ortak platformların çoğunda ve türevlerinde (yani Red Hat ve CentOS) bulunur.

İşte bazı örnekler.

Ubuntu'da /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

Ancak Debian'da /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat ve CentOS şunları içerir:

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

Şu anda kullanılabilir bir SUSE sistemim yok, ancak /etc/SuSE-release olduğuna inanıyorum.

Slackware /etc/slackware-release ve/veya /etc/slackware-version.

Mandriva /etc/mandriva-release var.

Popüler dağıtımların çoğu için o zaman,

$ cat /etc/*{release,version}

en sık işe yarayacak. Söküldü ve barebones "server" kurulumları, kurulu dağıtım için 'sürüm' paketine sahip olmayabilir.

Ek olarak, bu bilgileri otomatik olarak almak için kullanabileceğiniz iki 3. parti programı Ohai ve Facter şeklindedir.

Pek çok dağıtımın bu tür bilgilere /etc/issue veya /etc/motd biçiminde sahip olduğunu unutmayın, ancak bazı güvenlik politikaları ve en iyi uygulamalar bu dosyaların erişim bildirimi başlıklarını içermesi gerektiğini belirtir.

Related: Düğümde kurulu olan yazılım paketinin sürümünü nasıl bulabilirim? , kukla .

264
jtimberman

Ayrıca deneyebilirsiniz:

$ cat /etc/issue

Genellikle (her zaman olmasa da) hangi dağıtımı kullandığınızı size söyleyecektir. /etc/issue, giriş ekranı için kullanılan dosyadır.

39
Pablo Santa Cruz

Çekirdek: uname -a

20
raspi
cat /etc/os-release

ubuntu, Fedora ve OpenSUSE için en az.

OS X için en az 10.9'a kadar çalışmaz (Mavericks). Bunun yerine sw_vers kullanın.

OpenSUSE 13.1'e kadar cat/etc/SuSE-release 'a sahipti ancak os-release lehine kaldırıldı.

Redhat 6.1'de kedi/etc/redhat-serbest bırakma

15
sweetfa

lsb_release -a, kullanılabilir olduğunda kullanışlıdır.

14
CesarB

cat /proc/version, paylaşılan bir VPS'de beni Red Hat buldu.

12
iono

Çekirdek: uname -r

Dağıtım: lsb_release -a

Bunlar çoğu Linux sisteminde çalışacak

6
Albert Z.

Tek astar

lsb_release -a && uname -r
5
Serge Stroobandt

Bu sorun da çözülebilir kullanma platform modülü ile Python:

platform() işlevini kullanarak:

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-AMD64-x86_64-with-debian-9.6

Yukarıdaki komut , mümkün olan en fazla bilgi içeren temel platformu tanımlayan tek bir dize döndürür.

Veya uname() işlevini kullanarak:

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', '')

Yukarıdaki komut , altı nitelik içeren bir namedtuple() işlevini döndürür: system, node, release, version, machine ve processor.

Veya dist() işlevini kullanarak:

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

Son komut , Linux işletim sistemi dağıtım adının adını belirlemeye çalışır, ancak Python 3.5 olduğundan beri kullanım dışı ve Python 3.8'de kaldırılır olur.

1
simhumileco