Hallo Liste, wie finde ich am einfachsten raus, auf welche Distri mein Programm läuft? also ob SuSE, Debian, RedHat, *BSD.... ? Danke, Timo
Hallo Liste! suseml@easy-2001.de schrieb:
wie finde ich am einfachsten raus, auf welche Distri mein Programm läuft? also ob SuSE, Debian, RedHat, *BSD.... ? Hmm - gar nicht. Es gibt keinen festen Punkt wo Du sagen kannst: Die Distribution ist installiert.
Man kann einige Infos abzwacken z.B.: - Kernelversion - installierte Software man uname ist bestimmt auch hilfreich. Was genau willst Du denn machen? Was musst Du erreichen? Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Am Montag, 29. April 2002 14:57 schrieb Konrad Neitzel:
Hmm - gar nicht. Es gibt keinen festen Punkt wo Du sagen kannst: Die Distribution ist installiert. hmpf so ne scheisse...
Man kann einige Infos abzwacken z.B.:
- Kernelversion - installierte Software nunja.. KernelVersion bringt mich auch net viel weiter... Ich mein bei SuSE gibs ja /etc/SuSE-release .. ich dachte halt nur sowas gibs auch für debian etc...
Was genau willst Du denn machen? Was musst Du erreichen? Ich brauche das für mein Projekt, wo ich gerade bin. Da dies auf unterschiedlichen Distris laufen soll, muss ich bei der installation natürlich meine Pfade, Programme die ich aufrufe etc anpassen.
MfG, Timo
suseml@easy-2001.de schrieb:
Was genau willst Du denn machen? Was musst Du erreichen? Ich brauche das für mein Projekt, wo ich gerade bin. Da dies auf unterschiedlichen Distris laufen soll, muss ich bei der installation natürlich meine Pfade, Programme die ich aufrufe etc anpassen.
Ähm. Da würde ich wirklich anders vorgehen. Ich erwarte von einem Programm, dass es sich z.B. an meinen Pfad hält. Ich ersetze aus irgend einem Grund ein Binarie in /usr/bin durch eines in /usr/local/bin und Du nimmst dreist das Teil in /usr/bin???? Für so Projekte gibt es mehrere Möglichkeiten: 1) Sowas wie autoconf 2) Du verlässt Dich ganz und gar auf den von aussen gesetzten Pfad (Evtl. Security-Problem!!) 3) Du nutzt Deinen eigenen Path und schreibst, wie der User/Admin den evtl. anpassen kann. Da wäre es dann maximal interessant, wie die Binaries aussehen bzw. nicht aussehen. Die GNU Tools verhalten sich nicht unbedingt so, wie man es sonst von "Unix" her kennt. Meistens verbesserungen, aber man weiss nicht, ob auf einer Sun z.B. auch die gnu-Tools installiert sind. Ein Beispiel ist z.B. ps oder tar. (GNU tar kennt -z -> Auf AIX und Solaris wird man dies oft vergeblich suchen! Und bei ps gibt es unterschiedliche Aufrufe a. la. ps -ef und ps -axu) Das sind halt so Dinge, die mir noch so bekannt sind. (Damit habe ich mich schon verstärkt rumschlagen müssen :) ) Aber dies kann man ja vielleicht über ein Config-File regeln. Wäre ansonsten auch eine Möglichkeit. Dann muss der Admin halt zur Not ein Config-File schreiben, in dem alles drin steht a. la. perl /usr/bin/perl ps /bin/ps awk /home/neitzel/perl/bin/perl Ist zwar doof, aber lieber einem Admin sowas einmalig zumuten (oder via autoconf erstellen lassen!!!), als evtl. Sicherheitsprobleme zu riskieren. Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Am Montag, 29. April 2002 15:21 schrieb Konrad Neitzel:
Aber dies kann man ja vielleicht über ein Config-File regeln. Wäre ansonsten auch eine Möglichkeit. Dann muss der Admin halt zur Not ein Config-File schreiben, in dem alles drin steht a. la.
perl /usr/bin/perl ps /bin/ps awk /home/neitzel/perl/bin/perl
Hallo, genau so eine Config datei habe ich ja, wo zB drinne steht [http] conf=/etc/httpd/httpd.conf nun ist es bei Debian aber zB so, dass der apache sein configfile in /etc/apache hat.. Daher möchte ich ja bei der _Installation_ meines Tools, diese ConfigDatei möglichst automatisch anpassen. Daher die Frage, auf welcher Distri mein Programm ausgeführt wird. warum das ganze? Getreu nach dem Motto: Es ist umöglich etwas Idiotensicher zu machen, weil Idioten so genial sind! :))) MfG, Timo
Hallo, On Mon, 29 Apr 2002, Timo Eckert wrote:
Hallo, genau so eine Config datei habe ich ja, wo zB drinne steht [http] conf=/etc/httpd/httpd.conf
nun ist es bei Debian aber zB so, dass der apache sein configfile in /etc/apache hat..
type -p <Programm> <lib>-config $GNOME_ROOT/lib/<lib>Conf.sh rpm -qlf `which <program>` | grep 'etc\|conf\|cf' etc... Damit kannst du i.d.R. das wichtigste herausfinden... Die auto*-tools wurden ja schon genannt... Achso: und ob du auf ner dpkg- oder rpm-basierten Distri bist, sollte sich ja auch herausfinden lassen... Ausserdem kannst du auf ein paar "Spezifika" testen. Bei SuSE z.B. auf /etc/SuSE-release oder rpm -q aaa_base, RH hat IIRC auch sowas aehnliches, und die anderen Distris haben sicher auch "typische" Dateien/Pakete. -dnh -- Perl: A four letter word. Java: Another four letter word. -- Kristian Koehntopp
Am Mon, 2002-04-29 um 15.52 schrieb Timo Eckert:
Am Montag, 29. April 2002 14:57 schrieb Konrad Neitzel:
Hmm - gar nicht. Es gibt keinen festen Punkt wo Du sagen kannst: Die Distribution ist installiert. hmpf so ne scheisse...
Man kann einige Infos abzwacken z.B.:
- Kernelversion - installierte Software nunja.. KernelVersion bringt mich auch net viel weiter... Ich mein bei SuSE gibs ja /etc/SuSE-release .. ich dachte halt nur sowas gibs auch für debian etc... Ähnliches gibt es bei fast allen neueren Linux-Distris, doch ist das IMNSOHO der falsche Ansatz.
Was genau willst Du denn machen? Was musst Du erreichen? Ich brauche das für mein Projekt, wo ich gerade bin. Da dies auf unterschiedlichen Distris laufen soll, muss ich bei der installation natürlich meine Pfade, Programme die ich aufrufe etc anpassen. Nach GNU-Philosophie ist das die Aufgabe es Installierers (Oder heisst das jetzt Installateur?), nicht die Aufgabe des Entwicklers. Der Installierer muss/sollte die Pfade vorgeben, da nur er weiss was wo auf seinem System hingehört und Du es als Entwickler gar nicht wissen kannst.
Ein Weg, das zu ermöglichen, sind die autotools, weshalb ich Dir nahelegen würde, Dich mit autoconf/automake vertraut machen. Auch wenn es zwischenzeitlich etwas veraltet ist, würde ich Dir zu Einführung das "Ziegenbuch" (goat book) http://sources.redhat.com/autobook nahelegen. Ralf
On Monday 29 April 2002 15:52, Timo Eckert wrote:
Am Montag, 29. April 2002 14:57 schrieb Konrad Neitzel:
Hmm - gar nicht. Es gibt keinen festen Punkt wo Du sagen kannst: Die Distribution ist installiert.
hmpf so ne scheisse...
Man kann einige Infos abzwacken z.B.:
- Kernelversion - installierte Software
nunja.. KernelVersion bringt mich auch net viel weiter... Ich mein bei SuSE gibs ja /etc/SuSE-release .. ich dachte halt nur sowas gibs auch für debian etc...
Was genau willst Du denn machen? Was musst Du erreichen?
Ich brauche das für mein Projekt, wo ich gerade bin. Da dies auf unterschiedlichen Distris laufen soll, muss ich bei der installation natürlich meine Pfade, Programme die ich aufrufe etc anpassen. Es gibt einige Systemvariablen in denen (zumindest bei einer SuSE) der Distributor enthalten ist. MACHTYPE gibt bei SuSE und Debian einen Distributor aus: echo $MACHTYPE i586-suse-linux echo $MACHTYPE i686-debian-linux-gnu
Bann ist im 5ten Feld von BASH_VERSINFO bei SuSE auch de Distributor angegeben: echo ${BASH_VERSINFO[*]} 2 05 0 1 release i386-suse-linux echo ${BASH_VERSINFO[5]} i386-suse-linux oder, auch wieder SuSE Spezifisch less /etc/SuSEconfig SuSE Linux 8.0 (i386) VERSION = 8.0 Ich würde für Distributions übergreifende Scripte aber ein Abfangen der Probleme durch eine case Anweisung abfangen. Für ein Bash Script könnte dies zum Beispiel so aussehen: ---8<--- #!/bin/bash # Bis auf eine der folgenden Zeilen auskomentieren # es gilt immer die letzte aktivierte Zeile Distribution="suse" # fuer SuSE #Distribution="debian" # fuer Debian #Distribution="redhat" # fuer RedHat #Distribution="mandrake" # fuer Mandrake # testausgabe echo "Distribution: "$Distribution # Beginne Case Block case $Distribution in # prueft Inhalt von Distribution und case'd "suse" ) kDeDIR="/opt/KDE3" \ gNoMeDIR="/opt/gnome" \ ;; "debian" ) kDeDIR="/usr/opt/KDE3" \ gNoMeDIR="/usr/opt/gnome" \ ;; # und immer so weiter # Dieser Eintrag wirkt falls Distribution nicht gesetzt wurde * ) echo "Distribution case nicht gesetzt";; esac # Ende des Case Blockes # Asugabe der im Case Block gesetzten Variablen echo "Inhalt von kDeDIR: "$kDeDIR echo "Inhalt von gNoMeDIR: "$gNoMeDIR ---8<--- Tschüss, Thomas -- "[In 'Doctor' mode], I spent a good ten minutes telling Emacs what I thought of it. (The response was, 'Perhaps you could try to be less abusive.')" (By Matt Welsh)
Hallo Liste! suseml@easy-2001.de schrieb:
wie finde ich am einfachsten raus, auf welche Distri mein Programm läuft? also ob SuSE, Debian, RedHat, *BSD.... ? Hmm - gar nicht. Es gibt keinen festen Punkt wo Du sagen kannst: Die Distribution ist installiert.
Man kann einige Infos abzwacken z.B.: - Kernelversion - installierte Software man uname ist bestimmt auch hilfreich. Was genau willst Du denn machen? Was musst Du erreichen? Mit den besten Grüßen, Konrad Neitzel -- SoftMediaTec GmbH Tel: 0172 / 689 31 45 Fax: 069 / 90 50 99 53
Am Mon, 29 Apr 2002 schrieb Timo Eckert:
wie finde ich am einfachsten raus, auf welche Distri mein Programm läuft? also ob SuSE, Debian, RedHat, *BSD.... ?
Erläuterst Du mal etwas näher, was Du meinst? Willst Du wissen, welche Distribution auf dem Rechner installiert ist, an dem Du arbeitest? Oder möchtest Du wissen, ob ein spezielles Programm nur auf einer bestimmten Distribution läuft: Was letzteres angeht: Wenn Du den Quellcode hast, im Zweifel neu kompilieren und sollte auf jedem Linux laufen (*BSD ist kein Linux!), vorausgesetzt, die benötigten Biblioteheken sind in der benötigten Version vorhanden. Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Hallo, Am Montag, 29. April 2002 15:39 schrieb Timo Eckert:
Hallo Liste,
wie finde ich am einfachsten raus, auf welche Distri mein Programm läuft? also ob SuSE, Debian, RedHat, *BSD.... ?
Danke, Timo
wie waere es mit einem Blick auf: http://www.linuxbase.org/ Joachim Franek http://www.de-franek.de http://rs485.de-franek.de
participants (7)
-
Christoph Maurer
-
David Haller
-
Joachim.Franek@t-online.de
-
Konrad Neitzel
-
Ralf Corsepius
-
Thomas Templin
-
Timo Eckert