Identifiser Linux-distribusjonen

Identifiser Linux-distribusjonen

Innleggav Aeyoun » ons 24.10.2012 22:58

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

medlem i 147 måneder
 

Re: Identifiser Linux-distribusjonen

Innleggav Arthur_D » tor 25.10.2012 11:27

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).
medlem i 183 måneder
 

Re: Identifiser Linux-distribusjonen

Innleggav moma » tor 25.10.2012 11:32

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?
$ 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.
$ 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

$ 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:
$ sudo apt-get install linux-headers-$(uname -r)

Dette skriptet... kan håndtere mange varianter av *nix.

Erfaren
Brukerens avatar
medlem i 240 måneder
 

Re: Identifiser Linux-distribusjonen

Innleggav Aeyoun » tor 25.10.2012 13:16

moma skrev:Har man også spesifisert hvilke feltnavn er obligatoriske?

Ja, et minimumssett er satt. Se kildehenvisningen. :)
medlem i 147 måneder
 

Re: Identifiser Linux-distribusjonen

Innleggav terjejh » tor 25.10.2012 15:57

Aeyoun skrev: 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
Kode: Merk alt
# 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
Kode: Merk alt
~> 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
Kode: Merk alt
~> 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
Kode: Merk alt
# 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
Kode: Merk alt
~> gnome-shell --version
GNOME Shell 3.6.1

og gui her med Gnome Systemmonitor
Bilde

Erfaren
Brukerens avatar
medlem i 222 måneder
 


Returner til Artikler (Linux1)



Hvem er i Forumene

Registrerte brukere: FAST WebCrawler [Crawler], Google [Bot], Google Adsense [Bot], Google Feedfetcher