Acabei de configurar um novo servidor Ubuntu 13.10 com o ruby 2.1.1 instalado rvm
.
O problema é que sempre que eu mudo para o usuário "rails" (o usuário com o qual eu instalei o ruby e o rails) eu tenho que executar /bin/bash --login
antes que o Ubuntu reconheça que o ruby, rails ou rvm
está instalado.
Espero que alguém saiba:
- O que o comando acima faz?
- por que preciso executá-lo?
- e o que posso fazer para resolvê-lo de uma vez por todas? :)
Qualquer ajuda é apreciada!
su
? Ou algo parecidosu -l
ousu --
?). Qual é o shell de login para o usuário "rails"? Será que quis modificar variável PATH do utilizador e em caso afirmativo, em qual arquivo (~/.profile
ou~/.bashrc
ou~/.bash_profile
ou ...?)Respostas:
Parece que o ambiente necessário para o sistema encontrar os componentes ruby instalados é especificado em um arquivo que é lido apenas para shells de login. A página do manual do bash tem a dizer sobre a diferença entre shells de login e shells de não login:
e
enquanto que
Portanto, se as variáveis de ambiente ruby estiverem dentro
/home/rails/.profile
ou/etc/profile
por exemplo, elas serão adicionadas ao ambiente shellsu -l rails
ousu --login rails
ou a abreviaçãosu - rails
rails
efetua login via SSHbash --login
após o loginSe você deseja que o ambiente ruby seja definido independentemente de como você alterna para o usuário
rails
, você pode mover as definições de variáveis relevantes para o usuário~/.bashrc
.fonte
Eu sei que essa pergunta foi feita há 2 anos, mas se alguém (como eu) ainda a enfrentar: @steeldriver está certo - você está perdendo algo no seu
bashrc
que você tem em um desses 3 arquivos. No meu caso, eu só precisava adicionar esta linha à minha~/.bashrc
:fonte