Identifiser Linux-distribusjonen

En akseptert og adoptert løsning til et gammelt problem har fått fotfeste hos de store Linux-distribusjonene. For hvordan finner en egentlig ut hvilken distribusjon en er på? Alle distribusjonene har til nå hatt sine egne løsninger og mekanismer for dette, men Free Desktop/SysV har nå funnet en løsning alle ser ut til å kunne være enige i.

/etc/os-release er en tekstfil som inneholder standardisert informasjon om den aktuelle Linux-distribusjonen. Informasjonen i filen inkluderer navnet på distribusjonen, versjonsnummeret, en identifikasjonsstreng, og informasjon om hvor man kan finne ytterligere informasjon (distribusjonens nettside og dokumentasjon).

Filen er påkrevd i SysV-kompatible systemer, men har også blitt adoptert av distribusjoner som ikke bruker SysV. Filen har ennå ikke rukket å bli en del av alle stabile lanseringene, men den er å finne i de neste utgavene av Debian, OpenSUSE, Fedora, ArchLinux, og flere. De nyeste utgavene av Ubuntu og Slackware inkluderer filen.

Dette er første gang brukere (og programmer!) enkelt kan identifisere distribusjonen de kjører. Standardiseringen av informasjonen gjør det også enklere for programvareutviklere å håndtere flere Linux-distribusjoner. Håpet til dette og lignende initiativer er at det skal bli mindre fragmentnasjon mellom distribusjonene og enklere å skrive programmer som kan kjøre over alt uten spesiell tilpasning for hver distribusjon.

Kilder: os-release man page, distribusjonens pakkebrønner

Valg for kommentarvisning

Velg din foretrukket måte å vise kommentarer på og klikk på "Lagre innstillinger" for å aktivere endringene.

Arthur_D

På tide! Jeg har ofte lurt på hvilken versjon som ligger på hvilken partisjon... har hatt endel opp gjennom tiden (kvadruppel-boot, eller noe sånt).

moma

Nyttig sak. Noen skript ser ut til å sjekke navnet på distroen og versjonen vha /etc/os-release. Har man også spesifisert hvilke feltnavn er obligatoriske?
$ [color=#004000">cat /etc/os-release
NAME="Ubuntu"
VERSION="12.10, Quantal Quetzal"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu quantal (12.10)"
VERSION_ID="12.10"

Uname -a or uname -m forteller deg om Linux-kjernen.
$ [color=#004000">uname -a
Der
x86_64 betyr 64bit kjerne.
i386 eller i686 betyr 32bit kjerne.

Uname -r printer ut versjonen på Linux-kjernen. Denne er spesielt nyttig når man skal finne pakker for aktuelle kjernen. F.eks

$ [color=#004000">apt-cache search $(uname -r)
linux-headers-3.5.0-17-generic
linux-image-3.5.0-17-generic

Installer kildekode/headers pakke for kjernen:
$ [color=#004000">sudo apt-get install linux-headers-$(uname -r)

Dette [url=http://www.mozart-oz.org/home/bin/ozplatform">skriptet... kan håndtere mange varianter av *nix.

Aeyoun

Har man også spesifisert hvilke feltnavn er obligatoriske?
Ja, et minimumssett er satt. Se kildehenvisningen. :)

terjejh

Filen har ennå ikke rukket å bli en del av alle stabile lanseringene, men den er å finne i de neste utgavene av Debian, OpenSUSE, Fedora, ArchLinux, og flere. De nyeste utgavene av Ubuntu og Slackware inkluderer filen.

Det er bra at "os-release" blir standardisert over Linux distribusjonene; et ekvivalent tilfelle som har vært tilgjengelig er "lsb-release".

Men det er nok ikke riktig at "os-release" først kommer i neste utgave av openSUSE (12.3), da fila finnes i beste velgående i 12. 2 fra 5. september i år, jfr utskrift nedenfor. Faktisk ble os-release introdusert via en oppdatering til 12.1 allerede 10. april ;)

Ellers har den generelle termen /etc/*release (eller i færre tilfeller /etc/*version) vært benyttet i Linux distribusjoner gjennom år http://linuxmafia.com/faq/Admin/release-files.html

Her følger noen utskriftseksempler fra de SUSE releasene jeg f.t har tilgang til og har sjekket på:

SLES10/OES2

# ls /etc/*release
/etc/lsb-release  /etc/novell-release  /etc/SuSE-release

# cat /etc/*release
LSB_VERSION="core-2.0-noarch:core-3.0-noarch:core-2.0-ia32:core-3.0-ia32"

Novell Open Enterprise Server 2.0.3 (i586)
VERSION = 2.0.3
PATCHLEVEL = 3
BUILD

SUSE Linux Enterprise Server 10 (i586)
VERSION = 10
PATCHLEVEL = 4

openSUSE 11.4

~> ls /etc/*release
/etc/lsb-release  /etc/SuSE-release

~> cat /etc/*release
LSB_VERSION="core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64"

openSUSE 11.4 (x86_64)
VERSION = 11.4
CODENAME = Celadon

openSUSE 12.2

~> ls /etc/*release
/etc/lsb-release  /etc/os-release  /etc/SuSE-release

~> cat /etc/*release
LSB_VERSION="core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64"

NAME=openSUSE
VERSION="12.2 (Mantis)"
VERSION_ID="12.2"
PRETTY_NAME="openSUSE 12.2 (Mantis) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:12.2"

openSUSE 12.2 (x86_64)
VERSION = 12.2
CODENAME = Mantis

Et par alternative verktøy som også er nyttige for verifisering av versjoner

openSUSE Tumbleweed

# inxi -F
System:    Host: alfa Kernel: 3.6.3-8-desktop x86_64 (64 bit) 
           Desktop N/A Distro: openSUSE 12.2 (x86_64) VERSION = 12.2 CODENAME = Mantis
........snip

Gnome 3.6.1 versjon oppgradert på openSUSE 12.2

~> gnome-shell --version
GNOME Shell 3.6.1

og gui her med Gnome Systemmonitor
[url=http://bildr.no/view/1302975">

  • Skriv ut artikkel
  • Abonner med RSS

Siste kommentarer