# Rake e le variabili d'am-biente

**URL:** <https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719>\
**Category:** IT\
**Created:** [February 1, 2010, 10:38pm UTC](https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719 "2010-02-01T22:38:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 1, 2010, 10:38pm UTC](https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719/1 "2010-02-01T22:38:50Z")

</div>

PerchÃ© se faccio eseguire un rake da BackgroundJob non vede un  
eseguibile che sta in /usr/local/bin/ mentre se il rake lo eseguo da  
linea di comando me lo vede?  
Sembrerebbe che eseguito da BJ non accedesse alle stesse variabili  
d’am-biente dell’utente che esegue direttamente il rake.

L’eseguibile inoltre Ã¨ visibile ed accessibile senza problemi da linea  
di comando, da irb e da console (Rails).  
La piattaforma Ã¨ Linux e sto usando Rails.

Per la cronaca ho creato una cartella in lib/executables/merlin/ con  
all’interno cartelle suddivise per am-biente (macosx/ e linux/) dove in  
ognuna metto l’eseguibile adatto a ciascuna piattaforma.  
Tuttavia se l’eseguibile Ã¨ stato installato a livello di sistema (nel  
mio caso in /usr/local/bin/) viene fatta una verifica come segue:

def command\_exists?(command)  
if system(“which #{command}”)  
true  
else  
false  
end  
end

Ma risulta sempre negativa.

Qualche suggerimento?

Grazie mille.  
Aloha,  
iwan

PS: perchÃ© non posso usare am-bien senza il trattino? dice che il mio  
post contiene spam… E’ possibile aggirare questo fastidioso limite?

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 2, 2010, 12:22am UTC](https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719/2 "2010-02-02T00:22:21Z")

</div>

Iwan B. wrote:

> PerchÃ© se faccio eseguire un rake da BackgroundJob non vede un  
> eseguibile che sta in /usr/local/bin/ mentre se il rake lo eseguo da  
> linea di comando me lo vede?  
> Sembrerebbe che eseguito da BJ non accedesse alle stesse variabili  
> d’am-biente dell’utente che esegue direttamente il rake.

In che file metti il path?

$HOME/.bash\_profile  
oppure  
/etc/profile  
vengono letti solo quando si fa il login nella shell.

devi inserire  
export PATH=/usr/local/bin:$PATH  
oppure il comando giusto per la tua shell (ad esempio “setenv”) da  
qualche parte che sia accessibile anche ai programmi non interattivi  
( daemon vari, BackgroundJob, etc) lo puoi mettere in un file che  
richiami da init.d per esempio (uno creato appositamente).

> Grazie mille.  
> Aloha,  
> iwan

Di nulla  
Duilio R.

PS: sapere che distribuzione linux usi e che versione (anche dei  
programmi) puÃ² sempre essere utile, quindi ti consiglio di  
inserire piÃ¹ dati la prossima volta. Ti farÃ avere risposte piÃ¹  
dettagliate e in tempi piÃ¹ brevi 😉

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 2, 2010, 7:42am UTC](https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719/3 "2010-02-02T07:42:17Z")

</div>

Il 01 febbraio 2010 22.38, Iwan B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Perché se faccio eseguire un rake da BackgroundJob non vede un  
> eseguibile che sta in /usr/local/bin/ mentre se il rake lo eseguo da  
> linea di comando me lo vede?  
> Sembrerebbe che eseguito da BJ non accedesse alle stesse variabili  
> d’am-biente dell’utente che esegue direttamente il rake.

per toglierti ogni dubbio infila un

puts ENV[‘PATH’]

da qualche parte nel codice, così vedi qual è il path.

pietro

---

<div class="post-metadata">

**Author:** ![1w4n](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/1/65b543/32.png) [@1w4n](https://www.ruby-forum.com/u/1w4n)\
**Post date:** [February 2, 2010, 10:00am UTC](https://www.ruby-forum.com/t/rake-e-le-variabili-dam-biente/182719/4 "2010-02-02T10:00:03Z")

</div>

Per togliere qualsiasi dipendenza da fattori esterni potresti anche  
impostare il PATH da dentro il tuo programma ruby, sostituendo il valore  
iniziale con quello che vuoi tu. In questo modo sei anche al sicuro  
dagli effetti collaterali di future modifiche fatte ai file di  
inizializzazione della shell.

Paolo
