alterar / etc / environment não afetou minhas variáveis ​​de ambiente

10

Estou tentando instalar o sistema especialista Euler seguindo estas instruções . Para adicionar a variável de ambiente, editei meu /etc/environmentpara ser o seguinte:

 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
/home/mohammad/Desktop/eye"
 EYE_HOME = "/home/mohammad/Desktop/eye"

Mas quando uso printenv PATH, não vejo o novo diretório adicionado ao meu caminho.

O que estou fazendo de errado aqui?

Moha, o todo-poderoso camelo
fonte
Esse link não está funcionando no momento (o SourceForge está inoperante), mas você pode especificar se deseja variáveis ​​de ambiente em todo o sistema? Como se trata de um aplicativo, esse é provavelmente o caso e, portanto, muitas das respostas abaixo estão erradas.
22315 Michael Scheper

Respostas:

8

Não sei o motivo pelo qual PATH não foi alterado (após o login), mas

EYE_HOME = "/home/mohammad/Desktop/eye"
--------^-^

esses espaços impedem que EYE_HOME seja definido.

Note-se que /etc/environmentnão é um arquivo de script, mas um tipo de arquivo de atribuição que é lido pelo PAM. OTOH tais espaços não são permitidos em arquivos de script como /etc/profilee ~/.profiletambém.

Se você usar um arquivo de script, precisará exportar as variáveis, conforme mostrado na resposta de Avinash Raj.

Observe que, embora ~/.bashrcfuncione se você iniciar o programa a partir de uma janela do terminal, ele poderá não funcionar se você for iniciado no ambiente gráfico, pois não é fornecido pelo gerenciador de exibição.

Gunnar Hjalmarsson
fonte
@ gunnar-hijalmarsson --- correto. O fato de o gerenciador de exibição não ser iniciado a partir do meu shell me incomoda muitas vezes. Eu postei um truque para ver as variáveis ​​definidas no DE: askubuntu.com/a/356973/16395
Rmano
Bom truque, @Rmano! Alguma chance de você poder adicioná-lo a help.ubuntu.com/community/EnvironmentVariables ?
Gunnar Hjalmarsson
Obrigado - nunca editei nada disso e não sei se tinha as permissões. Examinarei se tiver tempo, mas, de outra forma, sinta-se à vontade para copiar / colar o que quiser - essa página precisa muito ser atualizada. Uma pergunta: todos os gerenciadores de exibição (lightdm, gdm, kdm) têm origem, ~/.profilemesmo que meu shell padrão não seja bash, mas, por exemplo zsh,?
Rmano
Verificado por mim. Eu uso zsh; os aplicativos iniciados pelo DE veem as variáveis ​​definidas em ~/.pam_environmente ~/.profile(NOT ~/.zprofile). Isso é bom e ruim, mas a parte ruim é resolvida alterando-a .profilepara que ela obtenha meu .zprofilee .zshenv. E confirmo que o uso .pam_environmenté ruim, é substituído em algum momento (não deveria, mas é).
Rmano
@Rmano: Eu sei que isso ~/.profileé fornecido por lightdm e gdm; não tenho certeza sobre o kdm.
Gunnar Hjalmarsson
5
gedit ~/.bashrc

Depois disso, adicione as linhas abaixo,

export EYE_HOME="/home/mohammad/Desktop/eye"
export PATH=$PATH:$EYE_HOME

Salve o arquivo e localize-o,

source ~/.bashrc
Avinash Raj
fonte
1
isso seria uma variável de todo o sistema?
Moha, o Todo-Poderoso camelo,
1
@AvinashRaj: essas variáveis ​​não apenas serão exclusivas para o usuário, mas também não serão vistas se o aplicativo não for iniciado a partir de um terminal de linha de comando ... o ambiente gráfico é iniciado por si só, sem usar o shell do usuário. Veja askubuntu.com/a/356973/16395
Rmano
0

Você pode tentar esses dois arquivos também para configuração em todo o sistema:

  • /etc/profile
  • /etc/bashrc

Para configuração ampla do usuário:

  • $HOME/.profile
  • $HOME/.bashrc

Basta acrescentar as variáveis ​​como você fez /etc/environment. Mas você terá que fazer login e logout (ou executar o recarregamento adequado). Talvez por login e logout /etc/environmentfuncionem, mas não tenho certeza.

Tinti
fonte
-1

Você deseja editar o arquivo .bashrc no diretório inicial.

Ao editar o caminho, você deve incluir :$PATHno final para não substituir o caminho atual.

Julian Stirling
fonte