更改/ etc / environment不会影响我的环境变量


10

我正在尝试按照这些说明安装Euler Expert系统。要添加环境变量,我/etc/environment对其进行了如下编辑:

 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"

但是,当我使用时,printenv PATH看不到新目录添加到我的路径中。

我在这里做错了什么?


该链接目前无法正常工作(SourceForge关闭),但是您可以指定是否要使用系统范围的环境变量吗?由于它是针对应用程序的,因此很可能是这种情况,因此以下许多答案是错误的。
Michael Scheper,2015年

Answers:


8

我不知道PATH未更改的原因(重新登录后),但是

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

这些空格会阻止设置EYE_HOME。

应当注意,这/etc/environment不是脚本文件,而是PAM读取的一种分配文件。OTOH这样的空间没有在脚本文件一样允许/etc/profile~/.profile两种。

如果使用脚本文件,则需要导出变量,如Avinash Raj的答案所示。

请注意,虽然~/.bashrc从终端窗口启动程序可以正常运行,但如果从图形环境启动程序则可能无法正常工作,因为它不是由显示管理器提供的。


@ gunnar-hijalmarsson ---正确的。显示管理器不是从我的外壳启动的事实让我很痛苦。我发布了一个技巧来查看DE中设置的变量:askubuntu.com/a/356973/16395
Rmano 2013年

好招,@ Rmano!您有机会将其添加到help.ubuntu.com/community/EnvironmentVariables吗?
Gunnar Hjalmarsson

谢谢-我从未编辑过其中之一,而且我不知道我是否拥有权限。如果有时间,我会进行调查,但是如果有其他需要,可以随时复制/粘贴---该页面非常需要更新。一个问题:所有显示管理器(lightdm,gdm,kdm)是否都来源,~/.profile即使我的默认外壳不是bash,例如zsh
Rmano 2013年

由我自己检查。我用zsh; DE启动的应用程序请参阅~/.pam_environment和中设置的变量~/.profile(NOT ~/.zprofile)。这是好事,也是坏事,但是坏的部分可以通过更改来解决,.profile以便它获取my .zprofile.zshenv。并且我确认使用.pam_environment不好,它有时会被覆盖(应该,但是确实是)。
Rmano 2013年

@Rmano:我知道那~/.profile是来自lightdm和gdm的;不确定kdm。
Gunnar Hjalmarsson

5
gedit ~/.bashrc

之后,添加以下几行,

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

保存文件并保存,

source ~/.bashrc

1
那是系统范围的变量吗?
全能骆驼Moha


1
@AvinashRaj:此变量不仅是用户专用的,而且如果应用程序不是从命令行终端启动的,则它们将不会显示...图形环境是由其自身而不是由用户的外壳程序启动的。参见 askubuntu.com/a/356973/16395
Rmano 2013年

0

您也可以尝试以下两个文件来进行系统范围的配置:

  • /etc/profile
  • /etc/bashrc

对于用户范围的配置:

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

只需像在上一样添加变量即可/etc/environment。但是您将必须登录和注销(或运行适当的重新加载)。也许通过登录和注销即可/etc/environment,但是我不确定。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.