Para o 11.04, fiz uma nova instalação do meu sistema. Parte dessa instalação foi instalar rvm , que enfia um rvm.sh
no /etc/profile.d/
. Isso não funciona, pois /etc/profile
(que carrega cada + r in /etc/profile.d/*.sh
) não está sendo carregado. De acordo com a documentação, o perfil é originado apenas se o bash for executado no logon. Para verificar isso, invoquei bash --login
, após o qual rvm
estava disponível.
Isso funcionou para mim nas versões anteriores do Ubuntu sem nenhuma configuração. Ou seja, uma nova instalação da 10.10 irá originar corretamente o perfil / .d.
Minha pergunta é: existe algo que estou fazendo de errado ou há algumas novas suposições sendo feitas em Natty que quebraram isso? Minha solução atual é source /etc/profile
em ~/.bashrc
(que é terrível como o perfil destina-se a carga antes bashrc de, mas faz o truque).
/etc/profile
(e, portanto, os .d). Obrigado pela explicação - parece que isso requer acompanhamento com o pessoal do rvm./etc/profile
e~/.profile
durante o login. É estranho, porque sempre funcionou com versões mais antigas. Eu acho que isso não é uma solução, mas uma solução alternativa.Existe, no entanto, um arquivo
/etc/bash.bashrc
que é lido pelo gnome-terminal e é o "arquivo .bashrc de todo o sistema para shells bash (1) interativos".Minha chamada para a função rvm
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
, foi lá e funciona muito bem para os dois usuários desse sistema.fonte
/etc/bash.bashrc
. Bem, pelo menos no Debian / Ubuntu. O Bash normalmente não lê um bashrc em todo o sistema; O debian corrigiu isso para isso.A instalação do RVM como multiusuário requer que o usuário execute este comando:
(porque o Ubuntu não fornece /etc/profile.d no login)
fonte
/etc/profile.d/
durante o login, porque o padrão/etc/profile
percorre e origina os arquivos/etc/profile.d/
. No entanto, se issorvm.sh
contiver código para shells interativos, como funções ou aliases, não será necessário obtê-los de origem/etc/profile
. Setup para sessões festança interativos devem estar em.bashrc
.se você possui ZSH ou OH-MY-ZSH, seu perfil é / etc / zprofile
fonte
Na verdade, encontrei aqueles que não gostam de reiniciar completamente suas caixas, a menos que seja absolutamente necessário o seguinte ...
Você não precisa reiniciar a máquina inteira para que as alterações
/etc/profile
entrem em vigor. Tudo o que você precisa é reiniciar a GUI do XWindows Desktop para reler as configurações (como faria se fosse iniciado como parte de uma reinicialização em todo o sistema).Para mim, eu uso o xUbuntu, que usa o LightDM, mas você pode usar o executável que chama sua área de trabalho atual.
Primeiro, você não pode usar um emulador de terminal de dentro da própria GUI da área de trabalho para fazer isso (pelo menos não com o LightDM). É necessário usar o SSH ou um console secundário (se você pressionar Ctrl + Alt e pressionar uma tecla F ou tecla numérica você deve sair do seu login ou tela da área de trabalho gráfica para uma janela simples do terminal). Também sugiro que você feche qualquer área de trabalho remota como o VNC se estiver usando SSH (obviamente o SSH pode ser conectado, você não deseja que uma janela aberta do VNC esteja pesquisando o display 0 enquanto estiver tentando reiniciar, pois isso pode travar a reinicialização enquanto espera que você encerre a sessão do VNC).
Faço isso o tempo todo com o SSH e é um grande salva-vidas, especialmente quando você não está fisicamente na sua máquina e não sente vontade de esperar por uma reinicialização completa e reconectar :-D
Agora, a parte fácil, uma vez em um terminal "secundário" ou problema de SSH: (Sim, isso acabará com sua sessão atual, certifique-se de que você não se importe, salve documentos ou trabalhos abertos)
espere um minuto enquanto ela mata a área de trabalho e a inicia novamente (isso pode levar alguns segundos bons, pois as coisas são interrompidas e depois executadas novamente no início)
É isso aí, agora, quando você voltar ao console 0 ou usar o VNC para conectar-se novamente, será recebido pelo prompt de login e logon normalmente e se você abrir um emulador de terminal e emitir seu comando, deverá agora não tenha problemas, pois tudo foi recuperado como se você tivesse reiniciado completamente a máquina.
Lembre-se: se você emitir
sudo service lightdm restart
[oustop
, o questart
for] dentro do próprio ambiente de área de trabalho usando um emulador de terminal, o comando ficará travado e nada parecerá estar acontecendo. Isso ocorre porque você está atualmente usando esse console (também conhecido como vídeo) 0 e, portanto, ele não pode ser desativado completamente e voltar ao modo de espera, pois espera que a área de trabalho não esteja em uso antes de executar o comando.Última nota: Eu não tentei emitir a reinicialização no ambiente a partir da área de trabalho em um emulador de terminal e depois mudar para outro console que poderá reiniciá-lo, mas se você já estiver trocando o console, por que não executar o comando de lá como deveria ser de qualquer maneira?
fonte
eco ".profile" >> ~ / .bashrc
E então abra outra janela. Eu acho que essa é a abordagem fácil.
fonte
.profile
fontes padrão.bashrc
, isso resultaria em um loop para a maioria dos usuários.