PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linux Distribution über Command abfragen



Robby-TX5
29.12.05, 11:58
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

Jasper
29.12.05, 12:14
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

Blackhawk
29.12.05, 12:16
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...

ninguno
29.12.05, 12:23
ich könnte noch /etc/issue anbieten

Robby-TX5
29.12.05, 12:26
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

ralisi
29.12.05, 13:36
bei debian steht in /proc/version drin, das es debian ist

traffic
29.12.05, 13:46
"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.

Robby-TX5
29.12.05, 16:02
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

traffic
29.12.05, 16:32
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).