Pergunta

Acabei de instalar o Ruby Version Manager (RVM), que está funcionando bem, mas me pediu para colocar a seguinte linha em meus arquivos /.bash_profile e ~/.bashrc:

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

olhando o conteúdo vejo o seguinte:

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

No entanto, quando eu inicio uma nova janela do Terminal, ele não executa o comando. Eu sei disso, pois defino minha versão Ruby padrão para 1.9 e se eu executar a linha manualmente, chego à versão correta:

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]

Alguma idéia de como posso consertar isso?

Obrigado,

Tam

Foi útil?

Solução

Se você tiver um ~/.profile, tente adicionar a seguinte linha a ele.

se [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ;então fonte /Users/tammam56/.rvm/scripts/rvm ;fi

Outras dicas

Você confirmou que outros comandos em .bashrc e/ou .bash_profile foram atualizados corretamente?

Em seguida, você deve confirmar se o Terminal está iniciando o shell como um shell de login ou não (veja em Preferências -> Inicialização).

Na página de manual do bash:

Quando o bash é invocado como um shell de login interativo ou como um não-inter- shell ativo com a opção --login, ele primeiro lê e executa com- mands do arquivo /etc/profile, se esse arquivo existir.Depois de ler esse arquivo, ele procura ~/.bash_profile, ~/.bash_login e ~/.profile, nessa ordem, e lê e executa comandos do primeiro que existe e é legível.A opção --noprofile pode ser usada quando o shell é iniciado para inibir esse comportamento.

Quando um shell interativo que não é um shell de login é iniciado, o Bash Reads e executa comandos de ~/.bashrc, se esse arquivo existir.Este pode ser inibido usando a opção --norc.A opção --rcfile file forçará o bash a ler e executar comandos do arquivo em vez de ~/.bashrc.

Descobri que a solução mais fácil para esse problema era mover todo o conteúdo do meu arquivo ~/.bashrc (então meu ~/.bashrc agora está vazio) para um novo arquivo ~/.bash_profile.Agora todas as guias Terminal.app executam automaticamente todas as linhas incluídas em ~/.bash_profile.Isso também se aplica ao iTerm.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top