Acabamos de instalar nosso(s) novo(s) servidor(es) e estamos executando o CentOS em todos eles. Depois de instalar o Ruby Enterprise Edition com sucesso, agora gostaria de adicionar o diretório REE /bin
(localizado em /usr/lib/ruby-enterprise/bin
) para torná-lo o interpretador Ruby padrão no servidor.
Eu tentei o seguinte, que apenas o adiciona à sessão atual do shell:
export PATH=/usr/lib/ruby-enterprise/bin:$PATH
Qual seria a abordagem correta para adicionar permanentemente esse diretório $PATH
para todos os usuários ? Atualmente estou logado como root
.
Não é uma boa ideia editar
/etc/profile
coisas assim, porque você perderá todas as suas alterações sempre que o CentOS publicar uma atualização para este arquivo. É exatamente/etc/profile.d
para isso:Faça login novamente e aproveite seu (com segurança) atualizado
$PATH
:Em vez de fazer login novamente, você pode recarregar o perfil:
Isso atualizará a
$PATH
variável.Depois de seguir o conselho do fmonk, verifiquei
/etc/bashrc
, onde notei que dizia que "As coisas do ambiente vão em /etc/profile". Eu continuei a olhar em/etc/profile
, eu vi isso:Para resolver meu problema, simplesmente adicionei
pathmunge /usr/lib/ruby-enterprise/bin
abaixo da instrução if. Isso resolveu meu problema.DESCULPE interpretei mal a pergunta a seguinte resposta é para o perfil de um USUÁRIO deixando-o caso ajude alguém
modificar .bash_profile
então, em algum lugar do arquivo, adicione/modifique seus caminhos separados por:
então recarregue seu perfil
ou saia e faça login novamente
se você marcar PATH, ele deve incluir seus caminhos recém-adicionados
Portanto, eu não colocaria variáveis de ambiente em bashrc, porque não é apenas contra a convenção comum, mas você também perderá suas variáveis bashrc ao invocar um terminal de um ambiente gráfico de área de trabalho.
No Redhat no
/etc/profile
encontrei este comentário:Portanto, se você deseja definir variáveis de ambiente com base no usuário, faça-o no arquivo .bash_profile do usuário.
Indo para o
.bash_profile
que eu li:Conclusão
Se você quiser que apenas o root veja os programas que residem, por exemplo em /
sbin
eu adicionaria esse caminho ao.bash_profile
arquivo do root. Mas se você quiser que todos os usuários vejam quais programas específicos de root estão instalados em sua caixa, eu colocaria/sbin
em/etc/.profile
. Agora, todos os usuários podem usar o preenchimento de guias para procurar programas específicos de root e elevar direitos, se necessário.Caso especial: SSH
Quando o ssh é iniciado com uma linha de comando, um shell de login interativo é iniciado. Mas neste caso
/etc/profile
não é lido. Quando eu defini variáveis de ambiente no.bash_profile
arquivo de cada usuário funcionou com ssh.Você pode definir variáveis de ambiente em um arquivo .rc; para shells bash (acredito que o mais comum e padrão no CentOS) cada usuário tem um arquivo chamado .bashrc em seu diretório pessoal.
Adicione o comando PATH=/usr/lib/ruby-enterprise/bin:$PATH a este arquivo para configurá-lo para qualquer usuário específico.
Para configurá-lo para todos os usuários (como você mencionou), altere-o em /etc/bashrc (o .bashrc padrão no diretório inicial de cada usuário deve fornecer este arquivo, mas você deve verificar isso).
Por que todo mundo esquece
/etc/environment
. Definir variáveis de ambiente para todos os usuários é para que serve este arquivo. Basta adicionar o par nome-valor da variável de ambiente em uma linha. Não use variáveis./etc/ambiente
Isso adicionará os diretórios
/usr/lib/ruby-enterprise/bin
/usr/bin
e/usr/local/bin
à sua variável PATH, para todos os usuários, assim que você sair ou reiniciar./usr/bin
e/usr/local/bin
já estavam no meu caminho antes, mas foram removidos por algum motivo depois que editei este arquivo. Portanto, adicione esses dois diretórios por segurança.