Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
export-Frage

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Stephan
Gast





BeitragVerfasst am: 03. Apr 2003 13:43   Titel: export-Frage

Um die qt-Bibliothecken für meine Programmierprojekte (OS ist SuSeLinux8.1) nutzen zu können, muß ich ein paar Variablen setzen.
Also habe ich wie in der Installationsanweisung von qt gefordert, folgende exports der .profile-Datei meines home-Verzeichnisses hinzugefügt.
export QTDIR=/usr/lib/qt3
export PATH=§{QTDIR}/bin:§{PATH}
export LD_LIBRARY_PATH=§{QTDIR}/lib:${LD_LIBRARY_PATH}
export QMAKESPEC=§{QTDIR}/mkspecs/default

das Problem ist nun, das diese Variablen nach dem Aufruf der Datei trotzdem nicht zur Verfügung stehen, innerhalb der Datei kann ich den Wert mit Hilfe von echo abfragen und der gesetzte Wert wird korreckt zurückgeliefert, doch tue ich das selbe in der Shell (mit der ich auch .profile ausgeführt habe) dann sind die Variablen nicht besetzt.

Die Frage lautet allgemein vormuliert also:
Wo ist der richtige Ort für export-Anweisungen, damit die gewünschten Variablen dem System immer zur Verfügung stehen?
 

Jochen
Gast





BeitragVerfasst am: 03. Apr 2003 14:18   Titel: Re: export-Frage

Du darfst das Skript nicht einfach aufrufen, sondern musst es sourcen:
code:
. qt-vars
Man beachte den führenden "."! (Ich habe den Namen "qt-vars" für Dein Skript hier einfach mal angenommen.)

Grund: Mittels export machst Du aus einer einfachen Shell-Variablen eine Umgebungs- oder Environment-Variable. Das Environment ist Bestandteil eines Prozesses und wird weitervererbt, wenn ein neuer Prozess geforkt()t (also als Kopie des Elternprozesses erzeugt) wird. Damit hat der Kindprozess seine eigene Kopie. Änderungen daran beeinflussen den Elternprozess nicht; sobald Dein Skript abgelaufen ist und er ausführenden Prozess abgebaut wird, ist die Änderung im Enviroment ebenso futsch.

Wenn Du nun ein Skript mittels "." sourcest, wird kein Kindprozess gestartet, sondern die Shell, die gerade läuft, führt das Skript aus. Man kann es soch als ein "include" vorstellen. Als Konsequenz sollte in soclehn zu sourcenden Skripten auch niemals ein "exit" auftauchen .

In der .profile kann man solche Skripte natürlich sourcen. Wenn man aber unter einer grafischen Benutzeroberfläche arbeitet, wird die .profile nicht ausgeführt, wenn man ein neues Konsolenfenster aufmacht. Daher ist es günstiger, solche Skripte aus der ~/.bashrc zu sourcen.

Jochen
 

Stephan
Gast





BeitragVerfasst am: 03. Apr 2003 14:42   Titel: Re: export-Frage

ok, jetzt mal angenommen ich würde meine ganzen export-Anweisungen in eine Datei mit dem Namen ~/exports schreiben (die damit zum Shell-Skript wird?! ).
und würde jetzt in der boot.local die Zeile
. ~/exports
zufügen, dann müßten doch die Variablen systemweit gelten, oder?

Ich nehme mal an, das das Hinzufügen meiner export-Anweisungen zur .bashrc dazu führen würde, daß alle Shells die Variablen kennen (ein gutes Etappenziel), aber würde auch zum Beispiel kdevelop die qt-Biliotheck finden? Oder binden das die Bibliothecken mit einen eigenen Mechanismus ein?
 

Jochen
Gast





BeitragVerfasst am: 03. Apr 2003 15:39   Titel: Re: export-Frage

> zufügen, dann müßten doch die Variablen systemweit gelten, oder?

Leider nein. init(Cool startet zum Abarbeiten der rc-Skripte (und damit auch der boot.local) ja eine eigene Shell, die wiederum die ganzen Unterskripte aufruft. Sobald das Shellscript, das gestartet wird, um die boot.local auszuführen, sich beendet, ist wieder Essig.

> ... das das Hinzufügen meiner export-Anweisungen zur .bashrc dazu führen würde, daß alle Shells die Variablen kennen (ein gutes Etappenziel),

Korrekt.

> aber würde auch zum Beispiel kdevelop die qt-Biliotheck finden? Oder binden das die Bibliothecken mit einen eigenen Mechanismus ein?

Hmmm... *knobel* Keine Ahnung, wie kdevelop das Problem handhabt. Wenn das Programm auf die Umgebungsvariablen zurückgreift, könnte man Dein Programm in ~/.xsession sourcen. Gerade habe ich mir mal angeschaut, wie man das Problem unter RH8.0 lösen könnte: Dort würde man eine datei mit den entsprechenden export Anweisungen unterhalb von /etc/X11/xinit/xinitrc.d/ ablegen. Die werden im Startup-Vorgang dann gesourcet. Wie es bei SuSE8.1 aussieht, kann ich Dir leider nicht sagen.

Jochen
 

HJILUZGKJHG
Gast





BeitragVerfasst am: 04. Apr 2003 15:18   Titel: Re: export-Frage

LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
ALALALALALALALALALALALALALALALALALALALALALALALLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
ALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALAL
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALAA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
ALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA












LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALAALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LLALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALAALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
LALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALALA
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy