Bei der Arbeit in Linux-Shellfenstern kommt es gelegentlich dazu, dass man eine bestimmte Datei nicht dort findet, wo man sie erwartet. Bei der Vielfalt von Linux-Distributionen gibt es verschiedene Varianten, nach denen die Dateien des Grundsystems organisiert sind. So finden sich beispielsweise bestimmte Logdateien, Konfigurationsdateien oder Systemutilities in distributionsabhängigen Verzeichnissen.
In großen Systemumgebungen, in denen viele Rechner mit unterschiedlichen Betriebssystemen existieren, stellt sich dann schnell die Frage: auf welcher Distribution arbeite ich hier eigentlich gerade?
Erste Hinweise erhält man mit dem uname-Kommando:
parallels@aubuntu:/usr/bin$ uname Linuxparallels@aubuntu:/usr/bin$ uname -a Linux aubuntu 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
parallels@aubuntu:/usr/bin$
Manchmal erhält man so aber keine aussagekräftige Information. Leider ist die Ablagestelle der gesuchten Informationen selbst distributionsabhängig. Also bleibt einem nichts anderes übrig, als verschiedene Möglichkeiten zu testen.
In /proc/version steht mitunter die gesuchte Information:
parallels@aubuntu:/usr/bin$ cat /proc/version Linux version 3.2.0-29-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012parallels@aubuntu:/usr/bin$
Eine weitere Möglichkeit ist /etc/os-release:
parallels@aubuntu:/usr/bin$ cat /etc/os-releasecat: /etc/os-release: No such file or directory
parallels@aubuntu:/usr/bin$
Das wäre eine schöne distributionsunabhängige Datei, um Distributions- und Versionsinformationen abzulegen. Wie man am obigen Beispiel sieht, legt dort aber nicht jede Distribution ihre Identität ab.
Immerhin geben sich Distributionen, die in ihrem Aufbau LSB-konform (Linux Standard Base) sind, in /etc/lsb-release zu erkennen:
parallels@aubuntu:/usr/bin$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION=Ubuntu 12.04.1 LTS parallels@aubuntu:/usr/bin$
Alternativ gibt es dann das Kommando lsb_release, das ähnliche Daten ausgibt:
parallels@aubuntu:/usr/bin$ lsb_release -aNo LSB modules are available. Distributor ID:Ubuntu Description:Ubuntu 12.04.1 LTS Release:12.04 Codename:precise
parallels@aubuntu:/usr/bin$
Führt all dies nicht zum Erfolg, bleibt noch die Suche nach distributionsspezifischen Dateien. Typische Vertreter sind:
- /etc/SuSE-release
- /etc/redhat-release
- /etc/debian-release
Am wahrscheinlichsten findet man diese Dateien also mit dem Kommando
ls -l /etc/*release
Wer jetzt immer noch im Dunklen tappt, dem bleiben noch zwei Dateien:
parallels@aubuntu:/usr/bin$ cat /etc/issue Ubuntu 12.04.1 LTSparallels@aubuntu:/usr/bin$ cat /etc/issue.net Ubuntu 12.04.1 LTS
parallels@aubuntu:/usr/bin$
Spätestens jetzt sollte man wissen, in welchem Umfeld man sich bewegt.