• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Umgebungsvariablen dauerhaft setzten

Mnote

Newbie
Hallo,

bin neu auf Linux umgestiegen da ich das Datenauswertungsprogramm ROOT (CERN) unter Linux verwenden möchte.

Hierzu existiert eine sehr detaillierte Anleitung die auch mich als Linux Neuling dazu gebracht hat das Programm zum laufen zu bringen. Allerdings muss ich dazu jedes folgende Kommandos eingeben.

sh
export ROOTSYS=/usr/local/bin/root
csh
setenv ROOTSYS /usr/local/bin/root
sh
export PATH=$ROOTSYS/bin:$PATH
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$ROOTSYS/lib:$DYLD_LIBRARY_PATH
csh
setenv PATH=${ROOTSYS}/bin:${PATH}
setenv LD_LIBRARY_PATH=${ROOTSYS}/lib:${LD_LIBRARY_PATH}
setenv DYLD_LIBRARY_PATH=${ROOTSYS}/lib:${DYLD_LIBRARY_PATH}
rehash

root # hiermit startet dann das Programm root

sobald ich allerdings die Konsole geschlossen habe und wieder neu starte/öffne muss ich das ganze Zeug wieder eingeben. Was mache ich falsch ?
 

pawe

Member
schreib ein kleines Script, das die oberen Befehle nacheinander abarbeitet.

Im Prinzip fehlt dir nur noch über den Befehlen der Interpreter:
Code:
#!/bin/sh

sh
export ROOTSYS=/usr/local/bin/root
csh
setenv ROOTSYS /usr/local/bin/root
sh
export PATH=$ROOTSYS/bin:$PATH
export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$ROOTSYS/lib:$DYLD_LIBRARY_PATH
csh
setenv PATH=${ROOTSYS}/bin:${PATH}
setenv LD_LIBRARY_PATH=${ROOTSYS}/lib:${LD_LIBRARY_PATH}
setenv DYLD_LIBRARY_PATH=${ROOTSYS}/lib:${DYLD_LIBRARY_PATH}
rehash

root

- starte kate, kopier das obere rein
- unter z.B. start-root.sh speichern,
- in der Konsole (im entsprechenden Ordner) chmod +x eingeben
- immer mit ./start-root.sh starten

Eine andere Möglichkeit wäre, die Variabeln in der .bashrc (unter /home/[user]) festzulegen. Diese Variabeln und aliase in der .bashrc werden bei jedem Aufruf der Konsole gesetzt.

gruß pawe
 
OP
M

Mnote

Newbie
Vielen Dank für die schnelle Antwort.

Allerdings klappt das so mit dem skript nicht. Im Prinzip führt er nur eine Zeile aus und zwar sh dannach werden die anderen Zeilen nicht mehr ausgeführt.

Hab ich mit eingefügten echo's gemerkt

Kann bei der anderen Methode mit der .bashrc irgendetwas unangenehmes passieren oder kann ich das ohne Probleme testen?

mfg Max
 

pawe

Member
Hallo Mnote,

Leider hatte ich deine Befehle nicht genau angeschaut, als ich dir die Antwort schrieb. Generell würde es schon gehen, aber dies ist ein spezieller Fall:
Die Befehle werden unter zwei unterschiedlichen Konsolen verarbeitet sh und csh.
Die Befehle der sh kannst du auf jeden Fall in der .bashrc eingeben in folgender Form:

export [Variable]=[Wert]

bei der csh-Shell weiß ich leider keine Lösung :cry:
 

homer65

Hacker
Du mußt wissen unter welcher Shell du arbeitest. Die Befehle für sh und csh sind identisch. Ich denke du mußt nur eine von beiden Varianten benutzen. Bei mir auf dem Rechner wären das die mit sh gekennzeichneten. Den Befehl sh brauchst du übrigens nicht aufzurufen. Übernimm nur die export ... Befehle in die .bashrc und es wird funktionieren.
Christian
 
Oben