Hallo, Am Wed, 28 Apr 2004, Marcus Habermehl schrieb:
Am Di, 2004-04-27 um 23.42 schrieb David Haller: [..] [Beispiele mal entfernt]
Immer noch Fragen?
Nöö. Das hab ich jetzt kapiert. Zwar muss ich es mir noch paar mal durchlesen, bis ich es mir merke, aber Fragen gibts erstmal keine mehr dazu.
Fein. *g* Es ist immer schoen zu wissen, dass sich die Tipperei gelohnt hat. [..]
/etc/profile.local gibt's IIRC seit mindestens SuSE 5.3.
dh@slarty$ grep '\.local' /etc/profile test -e /etc/profile.local && . /etc/profile.local
(und das ist auf meiner SuSE 6.2). Und das gibt's auch bei der SuSE 9.1 noch. AFAIK verwenden die meisten Distributionen sowas.
Vgl. /etc/ppp/ip-{up,down}.local.
Wie gesagt. Bisher habe ich nur ein einziges Mal eine /etc/profile.local gesehen. Deshalb hat mich die auch nicht weiter interessiert. Ich dachte, dass das aus irgendeiner Konstellation heraus entstand.
*g* AFAIR ist das irgendwo auch dokumentiert -- das letzte Handbuch, dass ich aber wirklich gelesen habe, war das zur SuSE 5.3 ;) Und: ==== /etc/profile [SUSE 9.1] ==== # # And now let's see if there is a local profile # (for options defined by your sysadmin, not SuSE Linux) # test -s /etc/profile.local && . /etc/profile.local ==== Steht sinngemaess auch schon in der /etc/profile meiner SuSE 6.2. Generell gilt einfach, dass man die Kommentare in den Config-Dateien lesen sollte. Das gilt fuer /etc/sysconfig/* unter SuSE genauso wie fuer andere Config-Dateien, das gilt sogar fuer die /etc/sendmail.cf ;)
Ich finde diese .local immer verwirrend. Für mich heißt das immer so viel, wie "nur auf dem Rechner".
Jo mei, ist /etc/profile denn nicht auch Rechnerspezifisch?
Ja. Deshalb hat mich das ja verwirrt. Das war für mich einfach unlogisch. Der Name ist es eigentlich immer noch. Verständlicher wäre so was wie .benutzerdefiniert (keine Ahnung, was das auf englisch heißt).
Das waere "userdefined", aber das waere auch irrefuehrend, denn es ist ja eben nicht Benutzerdefiniert, sondern Admin-definiert. Und das ist dann auch doof... Denk dir einfach, bei allen anderen Config-Dateien in /etc/ ein ".dist" hintendran. /etc/profile#.dist => durch die Distribution definiert /etc/profile.local => durch den Admin definiert Jedenfalls: der Mechanismus ist sehr praktisch und wird inzwischen recht haeufig verwendet. Bei SuSE 6.2 war das z.B. noch wesentlich weniger umgesetzt.
Denk dir einfach die ".local" als "nicht von der Distri".
Und ja, ueblicherweise muss man die .local Dateien selber anlegen.
Gut zu wissen. Wie werden diese Dateien eigentlich gesourced? Einfach mit
. /pfad/zur/datei ?
Ja. Der Punkt ist der eigentliche "source"-Befehl, "source" ist die (nicht-portable) GNU Ergaenzung. ==== $ help . source .: . filename Read and execute commands from FILENAME and return. The pathnames in $PATH are used to find the directory containing FILENAME. source: source filename Read and execute commands from FILENAME and return. The pathnames in $PATH are used to find the directory containing FILENAME. ==== Noch Fragen? ;)
s.o. Es ist ein AFAIK ueblicher Mechanismus, der AFAIK inzwischen auch im LSB festgehalten ist.
Damit sollte ja jede bekanntere/größere Distri diesen Mechanismus verfügen. Das macht einiges leichter.
Wie gesagt: ich "weiss" es nicht, ob das im LSB ist. Aber aehnliche Mechanismen werden inzwischen wohl meist verwendet. Da hilft dann ggfs. ein egrep '(^|[[:space:]]+)(\.|source)[[:space:]]' CONFIGDATEI" Das sollte dir auf jeder Distri verraten, ob eine Datei gesourced wird (gilt fuer profile, init-scripte, shell-scripte generell). Fuer andere Config-Dateien (z.B. Apache, modules.conf und modprobe.conf) geht dann: egrep '(^|[[:space:]]+)include[[:space:]]' CONFIGDATEI" usw. Analog anzupassen fuer andere Arten von "includes"... -dnh -- If you haven't got time to RTFM, you haven't got time to whine on this mailing list.