Gibt es eine Möglichkeit, festzustellen, welche Linux-Version (Distribution & Kernel-Version, nehme ich an) (von der Befehlszeile aus) auf einem beliebigen Linux-System ausgeführt wird?
quelle
Gibt es eine Möglichkeit, festzustellen, welche Linux-Version (Distribution & Kernel-Version, nehme ich an) (von der Befehlszeile aus) auf einem beliebigen Linux-System ausgeführt wird?
Der Kernel wird allgemein erkannt mit uname
:
$ uname -or
2.6.18-128.el5 GNU/Linux
Es gibt wirklich keine verteilungsübergreifende Methode, um festzustellen, auf welcher Distribution und Version Sie sich befinden. Es gab Versuche, dies zu vereinheitlichen, aber letztendlich variiert es leider. LSB-Tools liefern diese Informationen, sind jedoch ironischerweise nicht überall standardmäßig installiert. Beispiel auf einem Ubuntu 9.04-System mit lsb-release
installiertem Paket:
$ lsb_release -irc
Distributor ID: Ubuntu
Release: 9.04
Codename: jaunty
Ansonsten ist die am besten verfügbare Methode das Überprüfen von Dateien. Diese sind auf den meisten gängigen Plattformen und ihren Derivaten (z. B. Red Hat und CentOS) vorhanden./etc/something-release
Hier sind einige Beispiele.
Ubuntu hat /etc/lsb-release
:
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"
Aber Debian hat /etc/debian_version
:
$ cat /etc/debian_version
5.0.2
Fedora, Red Hat und CentOS haben:
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
Ich habe im Moment kein SUSE-System zur Verfügung, aber ich glaube, das ist es /etc/SuSE-release
.
Slackware hat /etc/slackware-release
und / oder /etc/slackware-version
.
Mandriva hat /etc/mandriva-release
.
Für die meisten populären Distributionen dann,
$ cat /etc/*{release,version}
wird am häufigsten funktionieren. Bei abgespeckten "Server" -Installationen und Barebones-Installationen ist möglicherweise nicht das "Release" -Paket für die Distribution installiert.
Darüber hinaus gibt es zwei Programme von Drittanbietern, mit denen Sie diese Informationen automatisch abrufen können : Ohai und Facter .
Beachten Sie, dass viele Distributionen diese Art von Informationen in /etc/issue
oder enthalten /etc/motd
. Einige Sicherheitsrichtlinien und bewährte Methoden weisen jedoch darauf hin, dass diese Dateien Banner für Zugriffsbenachrichtigungen enthalten sollten.
Verwandte Themen : Wie finde ich heraus, welche Version des Softwarepakets auf dem Knoten installiert ist? , Puppe .
Sie könnten auch versuchen:
In der Regel (jedoch nicht immer) erfahren Sie, welche Distribution Sie verwenden.
/etc/issue
ist die Datei, die für den Anmeldebildschirm verwendet wird.quelle
\S[newline]Kernel \r on an \m
Kernel:
uname -a
quelle
mindestens für Ubuntu, Fedora und OpenSUSE.
Funktioniert nicht für OS X mindestens bis 10.9 (Mavericks). Verwenden Sie stattdessen sw_vers .
OpenSUSE hatte cat / etc / SuSE-Release bis 13.1, wird jedoch zugunsten von OS-Release abgelehnt.
Redhat 6.1 hat cat / etc / redhat-release
quelle
lsb_release -a
Wenn verfügbar, ist dies hilfreich.quelle
cat /proc/version
Ich habe Red Hat auf einem gemeinsam genutzten VPS gefunden.quelle
Kernel:
uname -r
Distribution:
lsb_release -a
Diese laufen auf den meisten Linux-Systemen
quelle
Einzeiler
quelle
Dieses Problem kann auch mit Python mit dem
platform
Modul gelöst werden :Mit
platform()
funktion:Der obige Befehl gibt eine einzelne Zeichenfolge zurück, die die zugrunde liegende Plattform mit möglichst vielen nützlichen Informationen identifiziert.
Oder mit
uname()
Funktion:Der obige Befehl Gibt ein
namedtuple()
mit sechs Attributen:system
,node
,release
,version
,machine
, undprocessor
.Oder mit
dist()
Funktion:Mit dem letzten Befehl wird versucht, den Namen des Linux-Distributionsnamens zu ermitteln. Dieser Name ist jedoch seit Python 3.5 veraltet und wird in Python 3.8 entfernt .
quelle