Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Auf welcher Linux Distro läuft ein Script?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

Ich möchte gerne ein Script, welches bislang unter OpenSUSE benutzt wird für andere Linux Distris enablen. Da es leider zwischen den Linux Distros Unterschiede gibt muss ich im Script wissen mit welcher Distro ich es zu tun habe. Tante Google hat mit http://linuxmafia.com/faq/Admin/release-files.html ausgespuckt.

Code: Alles auswählen

(ls /etc/*[-_]release 2>/dev/null && cat /etc/*[-_]release) || (ls /etc/*[-_]version && cat /etc/*[-_]version)
scheint mir der Key zu sein. Kennt Ihr irgendein aktuelles CodeFragment welches universell als Ergebnis liefert welche Distri vorliegt?
tisu
Hacker
Hacker
Beiträge: 484
Registriert: 25. Sep 2007, 09:58
Wohnort: Köln

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von tisu »

hi framp :)

Dieser Code-Snipet ist aus dem alsa-info.sh Skript zum lokalisieren der Distro

Code: Alles auswählen

DISTRO=`grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}`
Hoffe es hilft und beste Grüße
openSUSE 11.4 (x86_64)
KDE: 4.6
Bild
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

tisu hat geschrieben:...Hoffe es hilft und beste Grüße
Das ist eine interessante Variante. Allerdings muss man dann noch der returnten String parsen um genau rauszubekommen welche Distro man hat. Mir schwebt eher sowas vor wie:

PseudoCode:

Code: Alles auswählen

distro=detectDistro();
switch distro in;
   openSusE: doSomething;
   ubuntu: doSomething;
   debian: doSomething;
esac;
spoensche
Moderator
Moderator
Beiträge: 7546
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von spoensche »

Du könntest die -release Files filtern, wie schon erwähnt wurde und durch einen weiteren Filter sicherstellen das, aus welchem Grund auch immer, der Distroname nicht mehrfach vorkommt (wenn die Releaseversion nicht benötigt wird).

So weit ich weiss, wird bei den meisten Distributionen während der Installation der Name usw. für den Menüeintrag im Bootmenü verwendet. Die Distribution per Bootmenüeintrag zu ermitteln ist meiner Meinung nach nicht die ideale und sicherste Lösung.
abgdf
Guru
Guru
Beiträge: 3350
Registriert: 13. Apr 2004, 21:15

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von abgdf »

Code: Alles auswählen

lsb_release -d
:wink:
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

abgdf hat geschrieben:

Code: Alles auswählen

lsb_release -d
Das wärs :up: - nur leider hat nicht jede Distro das per default installiert. CentOS und Fedora: Ja :smile: - OpenSuSE und Kubuntu: Nein :nosmile:
gropiuskalle
Guru
Guru
Beiträge: 4603
Registriert: 20. Nov 2007, 15:17
Wohnort: Berlin
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von gropiuskalle »

Hm, bei mir funktioniert das Kommando, obwohl ich mich nicht entsinnen kann, das Paket 'lsb-release' jemals installiert zu haben (könnte aber auch über irgendwelche Paket-Schemata reingerutscht sein).
Benutzeravatar
Rainer Juhser
Moderator
Moderator
Beiträge: 3895
Registriert: 14. Aug 2006, 17:03
Wohnort: 04711 Münchhausen

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von Rainer Juhser »

framp hat geschrieben:OpenSuSE und Kubuntu: Nein :nosmile:
Das ist seltsam - ich habe mal gerade meine VMs und mein laufendes System befragt:

Code: Alles auswählen

rjuhser@linux-ul7v:~> lsb_release -d
Description:    openSUSE 11.2 (i586)

rjuhser@vbox-karmic:~$ lsb_release -d
Description:	Ubuntu 9.10

rjuhser@zeus:~> lsb_release -d
Description:    openSUSE 11.1 (i586)
Die ersten beiden sind definitiv hundsgewöhnliche Standardinstallationen. Bei Nr.3 bin ich mir nicht ganz so sicher. :???:
Salü vom Rainer Juhser
_________________________
Bist du neu - guckst du hier:
Häufig gestellte Fragen == Hilfe zu Antworten aus dem Forum == WISSEN PUR: Linupedia - das Linux-Club WIKI!
stka
Moderator
Moderator
Beiträge: 3342
Registriert: 1. Jun 2004, 13:56
Wohnort: 51°58'34.91"N 7°38'37.47"E
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von stka »

Sidux geht auch:
lsb_release -d
Description: Debian GNU/Linux unstable (sid)
Du hörst nicht auf zu laufen weil du alt wirst. Du wirst alt weil du aufhörst zu laufen.
Das neue Buch http://www.kania-online.de/fachbuecher
Benutzeravatar
Jägerschlürfer
Moderator
Moderator
Beiträge: 4509
Registriert: 1. Jul 2005, 12:22
Wohnort: nahe Würzburg

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von Jägerschlürfer »

bei mir, opensuse 11.0, gehts nicht.
>Linux-Club Foren FAQ< >LC-Wiki<

Know your enemy and know yourself Sun Tzu
Benutzeravatar
Ganymed
Guru
Guru
Beiträge: 1609
Registriert: 15. Mai 2006, 12:58
Wohnort: JETZT ? DIREKT HINTER DIR !!

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von Ganymed »

@framp

meinst du eine Ausgabe in dieser Art?

Code: Alles auswählen

richy@p5:~> (ls /etc/*[-_]release 2>/dev/null && cat /etc/*[-_]release) || (ls /etc/*[-_]version && cat /etc/*[-_]version)
/etc/SuSE-release
openSUSE 11.2 (x86_64)
VERSION = 11.2
richy@p5:~>
Bewusst habe ich keine Pakete installiert die diese Ausgabe bewirken.

Gruß Ganymed

edit: entsprechende Ausgabe auch auf einem 32bit-System.
julia ist gut zu vögeln --- Groß- und Kleinschreibung retten die Ehre.
komm wir essen Opa --- Satzzeichen retten sogar das Leben
:)
Saedelaere
Member
Member
Beiträge: 207
Registriert: 1. Feb 2007, 23:45

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von Saedelaere »

Hier auf archlinux 64 geht lsb_release auch nicht. Jetz stellt sich nur die Frage warum dein Script überhaupt von der Distribution abhängig sein soll/muss. So was funktioniert auf Dauer nie.
TV-Viewer 0.8.x
GUI für Hauppauge PVR und andere ivtv basierenden TV-Karten
sourceforge.net Projekseite
Homepage
Ankündigungs, und Diskussionsthread
cero
Guru
Guru
Beiträge: 2292
Registriert: 5. Mai 2004, 20:33
Wohnort: nähe Buchholz i.d.N.

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von cero »

stka hat geschrieben:Sidux geht auch:
lsb_release -d
Description: Debian GNU/Linux unstable (sid)
Bei mir geht es unter sidux nicht.
Wissen, was man weiß,
und wissen, was man nicht weiß,
das ist wahres Wissen.
(Konfuzius)


"Auf der dunklen Seite gibt es keine Kekse, Luke! Bleib lieber hier!" - Obi-Wan Kenobi
gropiuskalle
Guru
Guru
Beiträge: 4603
Registriert: 20. Nov 2007, 15:17
Wohnort: Berlin
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von gropiuskalle »

Saedelaere hat geschrieben:Jetz stellt sich nur die Frage warum dein Script überhaupt von der Distribution abhängig sein soll/muss. So was funktioniert auf Dauer nie.
Deshalb:
framp hat geschrieben:Da es leider zwischen den Linux Distros Unterschiede gibt muss ich im Script wissen mit welcher Distro ich es zu tun habe.
Das ist z.B. bei Skripten interessant, die bestimmte Informationen sammeln und ausgeben sollen.
Saedelaere
Member
Member
Beiträge: 207
Registriert: 1. Feb 2007, 23:45

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von Saedelaere »

gropiuskalle hat geschrieben:
Saedelaere hat geschrieben:Jetz stellt sich nur die Frage warum dein Script überhaupt von der Distribution abhängig sein soll/muss. So was funktioniert auf Dauer nie.
Deshalb:
framp hat geschrieben:Da es leider zwischen den Linux Distros Unterschiede gibt muss ich im Script wissen mit welcher Distro ich es zu tun habe.
Das ist z.B. bei Skripten interessant, die bestimmte Informationen sammeln und ausgeben sollen.
Ja, nur lesen kann ich auch. Mich hätte halt interessiert welche Unterschiede er meint.
TV-Viewer 0.8.x
GUI für Hauppauge PVR und andere ivtv basierenden TV-Karten
sourceforge.net Projekseite
Homepage
Ankündigungs, und Diskussionsthread
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

Saedelaere hat geschrieben:... Ja, nur lesen kann ich auch. Mich hätte halt interessiert welche Unterschiede er meint.
Netzwerkkonfigurationen werden unterschiedlich und an verscheidenen Stellen abgelegt:

CentOS: /etc/sysconfig/network-scripts enthält KonfigDateien für die jeweiligen Interfaces, z.B. ifcfg-.eth0
Ubuntu: Die Datei /etc/network/interfaces enhält für alle Interfaces die KonfigDefinitions
openSuSE: Ähnlich wie bei Cento -aber unterscheidliches Verzeichnis und unterschiedlicher Inhalt: /etc/sysconfig/network enthält KonfigDateien für die jeweiligen Interfaces, z.B. ifcfg-.eth0

Weiterhin legt SusE diverse YAST NetworkKonfigs in /etc/sysconfig/network/config ab. Wo die Infos in den anderen Distros stecken bin ich gerade am rausfieseln :???:

ZU der Verfügbarkeit von lsb_release bei openSUSE : Bei 11.2 ist es dabei - also selbst innerhalb einer Distro nicht bei allen Versionsn. Bei 10.3 fehlt es auch :-( .
admine
Administrator
Administrator
Beiträge: 8897
Registriert: 15. Feb 2004, 21:13
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von admine »

Muss dein Script denn "allein" laufen oder wäre nicht auch "interaktiv" möglich?
Bsp:
gib 1 ein für openSUSE, 2 für Ubuntu, 3 für Sidux etc.
..:: unser Linux-Club-Wiki ::..
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

admine hat geschrieben:Muss dein Script denn "allein" laufen oder wäre nicht auch "interaktiv" möglich?
Bsp:
gib 1 ein für openSUSE, 2 für Ubuntu, 3 für Sidux etc.
Klar, das ist auch eine Möglichkeit. Aber ehrlich gesagt möchte ich das gerne programmatisch lösen. lsb_release ist schon sehr gut - nur scheint es leider nicht in allen Distros per default installiert zu sein :-(.
Benutzeravatar
framp
Moderator
Moderator
Beiträge: 4321
Registriert: 6. Jun 2004, 20:57
Wohnort: bei Stuttgart
Kontaktdaten:

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von framp »

Bin dabei nach und nach weitere Distros unter VMWare zu installieren. debian hat auch lsb_release. Scheint eine gute Basis zu sein - wenn auch nicht alle Distros es per default haben :skeptisch:
tisu
Hacker
Hacker
Beiträge: 484
Registriert: 25. Sep 2007, 09:58
Wohnort: Köln

Re: Auf welcher Linux Distro läuft ein Script?

Beitrag von tisu »

Könnte man das nicht auch durch eine 3-fache if-Abfrage realisieren? Bzw. einer Schleife mit verschachtelter if-Anweisung? Das müsste doch eigentlich gehen, denn im Endeffekt hast Du doch nur *release, issue und *version abzufragen.

EDIT:
Manche Distros kennen nicht lsb-release sondern lsb_release... Müsste Standard sein überall

http://linux.die.net/man/1/lsb_release
openSUSE 11.4 (x86_64)
KDE: 4.6
Bild
Antworten