Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Distribution über Command abfragen
Moin,
kann man die Linux Distribution über ein Command abfragen? Ich möchte also wissen, ob da RH, SUSE, Debian, Fedora oder sonstwas installiert ist.
uname -a könnte funktionieren, da da z. B. bei RH und Fedora die Version mitgegeben wird (z.B. 2.6.12.-1.1381_FC3). Nur wie ist die Ausgabe bei z. B. Suse oder Debian?
Robby
lsb-konforme distributionen liefern lsb_release mit:
# lsb_release -a
LSB Version: 1.3
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 3 (Taroon Update 6)
Release: 3
Codename: TaroonUpdate6
-j
uname -a funktioniert genaugenommen nicht, da es dir (nur) die Kernelversion anzeigt. Wenn ich mir selbst nen Kernel backe, bestimme ich damit quasi auch den String, der dort ausgegeben wird.
RedHat und Fedora haben /etc/redhat-release bzw. /etc/system-release und in /proc/version steht auch was drin...
ich könnte noch /etc/issue anbieten
Danke!
"lsb-release -a" ist genau das was ich brauche. Leider spricht SUSE darauf nicht an. In der /proc/version von SUSE steht nur das drin, was "uname" ausgibt (also z. B. 2.6.8-default).
BTW: Was ist denn lsb-konform?
Robby
bei debian steht in /proc/version drin, das es debian ist
"lsb-release -a" ist genau das was ich brauche. Leider spricht SUSE darauf nicht an.
Wieso?
$ lsb_release -a
LSB Version: core-2.0-noarch:core-3.0-noarch:core-2.0-ia32:core-3.0-ia32:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: SUSE LINUX
Description: SUSE LINUX 10.0 (i586) OSS
Release: 10.0
Codename: n/a
Auch praktisch:
$ lsb_release -i
Distributor ID: SUSE LINUX
$ lsb_release -d
Description: SUSE LINUX 10.0 (i586) OSS
$ lsb_release -is
SUSE LINUX
$ lsb_release -ds
"SUSE LINUX 10.0 (i586) OSS"
Übrigens: Standardkonform ist die Variante mit einem Unterstrich, nicht die mit dem Bindestrich. Siehe hier:
http://www.linuxbase.org/spec/booksets/LSB-Core-generic/LSB-Core-generic/lsbrelease.html
Hoffentlich hat Red Hat zumindest beide... SuSE und Debian haben jedenfalls schon mal nur die mit dem Unterstrich.
hmm,
auf "lsb_release -a" gibt Suse Prof 9.2 "command not found" zurück (auch als root). Scheinbar ist hier das LSB-RPM nicht von Haus aus dabei. Dann werde ich das mal nachholen.
Übrigens: Standardkonform ist die Variante mit einem Unterstrich, nicht die mit dem Bindestrich.
Ich habe auch die "Unterstrich-Variante" probiert, mich nur hier beim Posten veschrieben. Fedora kennt die "Bindestrich-Varinate" auch nicht, also nur "lsb_release".
Danke nochmal
Robby
Zur Not, falls "lsb_release" Dir nicht zuverlässig genug sein sollte:
if [ -f /etc/redhat-release ] ; then
DISTRI="Red Hat"
elif [ -f /etc/SuSE-release ] ; then
DISTRI="SuSE"
elif [ -f /etc/debian_version ] ; then
DISTRI="Debian"
else
DISTRI="unknown"
fi
echo "$DISTRI"
Der Nachteil dieser Variante wäre, dass sie ungenaue Ergebnisse liefern kann (z.B. legen manche Nicht-SuSE-Benutzer von Hand die Datei "/etc/SuSE-release" an, damit MoneyPlex läuft und ähnliche Geschichten).
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.