erlug
[Top] [All Lists]

Re: [Erlug] bash PATH

To: ERlug - Lista Pubblica <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] bash PATH
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Wed, 31 Aug 2005 23:08:18 +0200
Federico Calboli ha scritto:

Ho fatto cazzata. Nel tentativo di ggiunger un esecutable al bash PATH ho piallato il PATH normale. Utilizzando emacs ho aggiunto alla fine di .bash_profile
>
PATH=$PATH:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games
export PATH


e poi un buon source .bash_profile

per cui il tutto e` normale, ma:

Non è che mi sia chiarissimo cosa sia successo, ma procediamo con ordine:
di solito una shell all'avvio esegue un certo numero di script. Nel caso
di bash, riassumendo da bash(1):
- se si tratta di una shell interattiva di login viene eseguito
  /etc/profile e poi il primo che trova tra ~/.bash_profile,
  ~/.bash_login e ~/.profile;
- se si tratta di una shell interattiva ma non di login viene eseguito
  qualora presente ~/.bashrc;
- se la shell non è interattiva vedi bash(1), non penso che sia il caso
  che ci interessa qui.

Di solito, il PATH viene impostato in /etc/profile perchè comprenda il
software installato a beneficio di tutti gli utenti, ovvero i soliti
/bin, /usr/bin ed eventualmente /usr/bin/X11R6 se c'è; in .bash_profile
eventualmente si aggiunge una directory di eseguibili utente, ad esempio
~/bin.

Ora, un modo semplice per modificare il PATH è intervenire appunto in
.bash_profile con

  export PATH=$PATH:~/my-bin

dove si suppone che l'intento sia usare degli eseguibili utente. Se invece sono eseguibili installati a beneficio di tutti gli utenti, si
interviene come root in /etc/default e di solito c'è un minimo di
infrastruttura per svolgere questa faccenda, ad esempio in Fedora si
usa una funzione di shell, pathmunge()

  pathmunge /opt/our-prog/bin after

e questa infrastruttura può variare da distribuzione a distribuzione
e legittimamente anche da sysadm a sysadm.

1) come faccio a ripristinare il path in caso di cazzate?

Da un backup oppure, supponendo che non ci siano state modifiche manuali, da un altro host simile (stessa distribuzione).

2) come faccio ad aggiungere un path che ha da chiamarsi TreeLD_PATH al path senza cazzate? in che file, .bash_profile o in .profile?

Supponendo che TreeLD_PATH sia una variabile di shell, basta

export PATH=$PATH:$TreeLD_PATH

Davide Bolcioni
--
There is no place like /home.

<Prev in Thread] Current Thread [Next in Thread>