2009-07-22 19:20:02 +0000 2009-07-22 19:20:02 +0000
211
211

Hoe kom ik erachter welke versie van Linux ik draai?

Is er een manier om te bepalen welke versie (distributie- & kernelversie, neem ik aan) van Linux draait (vanaf de commandoregel), die op elk Linux systeem werkt?

Antwoorden (9)

269
269
269
2009-07-22 19:34:33 +0000

De kernel wordt universeel gedetecteerd met uname:

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

Er is echt geen cross-distributie manier om te bepalen op welke distributie en versie je zit. Er zijn pogingen geweest om dit consistent te maken, maar uiteindelijk varieert het helaas. LSB-tools geven deze informatie, maar zijn ironisch genoeg niet overal standaard geïnstalleerd. Voorbeeld op een Ubuntu 9.04 systeem met het lsb-release pakket geïnstalleerd:

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

Anders is de dichtstbijzijnde breed beschikbare methode het controleren van /etc/something-release bestanden. Deze bestaan op de meeste gangbare platformen, en op hun afgeleiden (d.w.z, Red Hat en CentOS).

Hier zijn enkele voorbeelden.

Ubuntu heeft /etc/lsb-release:

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

Maar Debian heeft /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat en CentOS hebben:

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

Ik heb op dit moment geen SUSE systeem beschikbaar, maar ik geloof dat het /etc/SuSE-release is.

Slackware heeft /etc/slackware-release en/of /etc/slackware-version.

Mandriva heeft /etc/mandriva-release.

Voor de meeste populaire distributies dan,

$ cat /etc/*{release,version}

zal het vaakst werken. Gestripte en kale “server” installaties hebben mogelijk niet het “release” pakket voor de distributie geïnstalleerd.

Daarnaast zijn er twee programma’s van derden die u kunt gebruiken om deze informatie automatisch te verkrijgen: Ohai en Facter .

Merk op dat veel distributies dit soort informatie in /etc/issue of /etc/motd hebben, maar sommige beveiligingsbeleidsmaatregelen en best practices geven aan dat deze bestanden toegangsmeldingsbanners moeten bevatten.

Gerelateerd Hoe kom je erachter welke versie van het softwarepakket op het knooppunt is geïnstalleerd? poppetje.

42
42
42
2009-07-22 19:58:38 +0000

U kunt ook proberen: $ cat /etc/issue

Het vertelt u meestal (niet altijd) welke distributie u gebruikt. /etc/issue is het bestand dat gebruikt wordt voor het inlogscherm.

20
20
20
2009-07-22 19:21:27 +0000

Kernel: uname -a

16
16
16
2014-04-02 22:56:41 +0000
cat /etc/os-release

minimaal voor Ubuntu, Fedora en OpenSUSE.

werkt niet voor OS X minimaal tot 10.9 (Mavericks). Gebruik sw_vers in plaats daarvan.

OpenSUSE had cat /etc/SuSE-release tot 13.1 maar is afgeschreven ten gunste van os-release.

Redhat 6.1 heeft cat /etc/redhat-release.

14
14
14
2009-07-22 23:48:08 +0000

lsb_release -a, indien beschikbaar, is nuttig.

12
12
12
2014-06-26 06:59:45 +0000

cat /proc/version vond me Red Hat op een gedeelde VPS.

6
6
6
2015-06-18 17:06:13 +0000

Kernel: uname -r

Distro: lsb_release -a

Deze zullen op de meeste Linux-systemen draaien.

5
5
5
2018-01-29 14:51:31 +0000

One-liner

lsb_release -a && uname -r
1
1
1
2019-01-08 07:25:25 +0000

Dit probleem kan ook worden opgelost met behulp van * Python met de platform-module **:

Met de platform()-functie:

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

Het bovenstaande commando _levert een enkele tekenreeks op die het onderliggende platform identificeert met zo veel mogelijk nuttige informatie. _

of het gebruik van de uname()-functie:

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

Het bovenstaande commando _retourneert een namedtuple() met zes attributen: system, node, release, version, machine, en processor. _

of het gebruik van de dist()-functie:

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

Het laatste commando bepaalt de naam van de Linux OS-distributienaam, maar is gedepreciseerd sinds Python 3.5 en _wordt verwijderd in Python 3.8 _.