Discussione:
Settare variabili d'ambiente all'avvio
(troppo vecchio per rispondere)
Francesco Sblendorio
2003-09-18 14:44:25 UTC
Permalink
Ho la necessita' di impostare all'avvio del sistema alcune variabili di
ambiente (in primis $CLASSPATH). Le variabili devono essere impostate
indipendentemente dal fatto che si apra o no una finestra di terminale
(e quindi indipendentemente che si apra o no una shell come bash o sh,
quindi niente .profile o .login).

Ho tentato inserendo in coda ed /etc/rc.local istruzioni del tipo
export CLASSPATH=/opt/jars/xercesImpl.jar

ma una volta riavviato il sistema, con un "echo $CLASSPATH" ottengo solo
un rigo vuoto.

In quale script devo inserire le assegnazioni alle variabili affinche'
queste "restino" impostate?

Grazie in anticipo.

P.S. Uso Linux RedHat 9
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Andrea C.
2003-09-18 14:57:07 UTC
Permalink
Post by Francesco Sblendorio
Ho la necessita' di impostare all'avvio del sistema alcune variabili di
ambiente (in primis $CLASSPATH). Le variabili devono essere impostate
indipendentemente dal fatto che si apra o no una finestra di terminale
(e quindi indipendentemente che si apra o no una shell come bash o sh,
quindi niente .profile o .login).
Ho tentato inserendo in coda ed /etc/rc.local istruzioni del tipo
export CLASSPATH=/opt/jars/xercesImpl.jar
ma una volta riavviato il sistema, con un "echo $CLASSPATH" ottengo solo
un rigo vuoto.
In quale script devo inserire le assegnazioni alle variabili affinche'
queste "restino" impostate?
nel file cdi configurazione /etc/profile per tutti gli utenti,
in $HOME/.bash_profile per un singolo utente

ciao, andrea
Francesco Sblendorio
2003-09-18 15:00:39 UTC
Permalink
Post by Andrea C.
nel file cdi configurazione /etc/profile per tutti gli utenti,
AFAIK /etc/profile viene richiamato quando viene eseguita la shell bash.
A me invece serve impostare le variabili di ambiente *anche* se *non*
apro bash, ad esempio con un login grafico (xdm o gdm).
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Ikitt
2003-09-18 17:12:51 UTC
Permalink
Post by Francesco Sblendorio
AFAIK /etc/profile viene richiamato quando viene eseguita la shell bash.
A me invece serve impostare le variabili di ambiente *anche* se *non*
apro bash, ad esempio con un login grafico (xdm o gdm).
La strada sicura e` fare un wrapper in shell script attorno al programma
o servizio che ha bisogno delle variabili di ambiente.
AFAIK mozilla fa cosi`, e anche altri programmi.
--
Francesco Romani - Ikitt | Describe your vision, the meaning is missing |
*** mailserver: freemail.it| Won't anybody listen? |
Post by Francesco Sblendorio
La questione brevetti software: http://www.softwarelibero.org <<<
Francesco Sblendorio
2003-09-18 22:09:31 UTC
Permalink
Post by Ikitt
La strada sicura e` fare un wrapper in shell script attorno al programma
o servizio che ha bisogno delle variabili di ambiente.
AFAIK mozilla fa cosi`, e anche altri programmi.
Certo, pero' e' scomodo dover fare questo per ogni programma che si
installa.
Sotto Windows NT/2000/XP basta impostare i valori e questi valgono
globalmente.
Ci deve essere un analogo sotto Unix. C'e'?
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Ikitt
2003-09-19 09:42:06 UTC
Permalink
Post by Francesco Sblendorio
Post by Ikitt
La strada sicura e` fare un wrapper in shell script attorno al programma
o servizio che ha bisogno delle variabili di ambiente.
AFAIK mozilla fa cosi`, e anche altri programmi.
Certo, pero' e' scomodo dover fare questo per ogni programma che si
installa.
Infatti non si fa... AFAIK i programmi che _richiedono_ tale manovra
sono l'eccezione e non la regola.
D'altronde, se ben ricordo, l'uso e la gestione delle variabili
di ambiente sono appannaggio della shell e dei programmi da riga
di comando; se un programma grafico (es: mozilla) _richiede_
qualcosa in questo senso e` perche` ci sono hack piu` o meno
leciti & puliti sotto; nel caso di mozilla sono dettati, per quel
che ne so, dalla necessita` di essere dipendenti dal solo X e
non da un qualsivoglia ambiente grafico, al fine di massimizzare
la portabilita` su ogni *nix.
Post by Francesco Sblendorio
Sotto Windows NT/2000/XP basta impostare i valori e questi valgono
globalmente.
Ci deve essere un analogo sotto Unix. C'e'?
Si, /etc/profile, per i suddetti motivi.
--
Francesco Romani - Ikitt | Describe your vision, the meaning is missing |
*** mailserver: freemail.it| Won't anybody listen? |
Post by Francesco Sblendorio
Post by Ikitt
La questione brevetti software: http://www.softwarelibero.org <<<
Andrea C.
2003-09-19 07:56:13 UTC
Permalink
Post by Francesco Sblendorio
Post by Andrea C.
nel file cdi configurazione /etc/profile per tutti gli utenti,
AFAIK /etc/profile viene richiamato quando viene eseguita la shell bash.
A me invece serve impostare le variabili di ambiente *anche* se *non*
apro bash, ad esempio con un login grafico (xdm o gdm).
Io ho fatto login 5 minuti fa, non ho aperto nessun xtem/konsole/gterm/...
eppure, se vado a vedere da interfaccia grafica i processi attivi
trovo la shell ;-)

Il login lancia automaticamente la shell dll'utente.

man login
..............
Viene poi lanciata la shell dell'utente. Se non è specifi-
cata nessuna shell per l'utente in /etc/passwd, allora è
usata /bin/sh.
.........

Poi, se non sbaglio di grosso, le variabili d'ambiente sono
oggetti interni alle shell. Se cambi shell, cambi modo di
impostarle e (in parte) cambi le variabili settate.
Ci batto spesso la testa andando avanti e indietro da
bash a tcsh :-)

ciao, andrea
Francesco Sblendorio
2003-09-19 08:12:48 UTC
Permalink
Post by Andrea C.
Poi, se non sbaglio di grosso, le variabili d'ambiente sono
oggetti interni alle shell.
Si, ci ho pensato anche io, ma ho pensato anche (ad es.) in csh/tcsh ci
sono due tipi di variabili: quelle "di ambiente" impostabili con setenv
e quelle "di shell", visibili solo da tcsh.
--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
Loading...