Domanda

Ho appena installato di Ruby Version Manager (RVM) che sta lavorando bene, ma mi ha chiesto di mettere la seguente riga nel mio /.bash_profile e ~ / .bashrc file:

if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

guardando il contenuto vedo il seguente:

tammam56$ cat /.bash_profile
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

tammam56$ cat ~/.bashrc 
export PATH=/usr/local/bin:$PATH
export MANPATH=/usr/local/man:$MANPATH
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

Tuttavia quando inizio una nuova finestra Terminale non esegue il comando So che questo, come ho impostato il mio difetto verion Ruby per 1,9 e se eseguo la linea manualmente ottengo alla versione corretta:

tammam56$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
Macintosh-37:~ tammam56$ if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Macintosh-37:~ tammam56$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.2.0]

Tutte le idee come posso risolvere questo?

Grazie,

Tam

È stato utile?

Soluzione

Se si dispone di un ~ / .profile provare ad aggiungere la seguente riga ad esso.

if [[-s /Users/tammam56/.rvm/scripts/rvm]]; quindi fonte /Users/tammam56/.rvm/scripts/rvm; fi

Altri suggerimenti

Avete confermato che gli altri comandi in .bashrc e / o .bash_profile vengono aggiornati correttamente?

Si dovrebbe confermare se Terminal sta iniziando la shell come shell di login o meno (vedi in Preferenze -> Avvio).

Dalla pagina man di bash:

  

Quando bash è invocata come una shell di login interattiva, o come un non-inter          shell attivo con opzione --login, esso prima legge ed esegue com-          mands dal file / etc / profile, se quel file esiste. Dopo aver letto          quel file, cerca ~ / .bash_profile, ~ / .bash_login, e ~ / .profile,          in questo ordine, e legge ed esegue comandi dal primo che          esiste ed è leggibile. L'opzione --noprofile può essere utilizzato quando il          shell viene avviata per inibire questo comportamento.

     

Quando si avvia una shell interattiva che non è una shell di login, bash          legge ed esegue comandi da ~ / .bashrc, se tale file esiste. Questo          può essere inibita utilizzando l'opzione --norc. L'opzione di file --rcfile          costringerà bash per leggere ed eseguire comandi da file invece di          ~ / .Bashrc.

Ho trovato che la soluzione più semplice a questo problema è stato quello di spostare tutti i contenuti dal file ~ / .bashrc (quindi il mio ~ / .bashrc è ora vuoto) in un nuovo file ~ / .bash_profile. Ora tutte le schede Terminal.app eseguire automaticamente tutte le linee inclusi in ~ / .bash_profile. Questo vale anche per iTerm.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top