我正在使用12.04LST,并且正在尝试手动安装oracle jdk7。
然后我更新/etc/environment
以设置PATH
变量。
这是原始文件内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
我将其更新如下:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/usr/lib/jvm/jdk1.7"
PATH="$PATH:$JAVA_HOME/bin"
然后我使用以下方法使其工作:
source /etc/environment
然后我输入java
和javac
,它就成功了。
然而,我重新启动计算机后,仍然停留在登录屏幕。
然后我用来ctrl+alt+f2
进入终端。
并/etc/envrionment
像这样更新:
/usr/bin/sudo /usr/bin/nano /etc/emvrionment
更改为以下内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
JAVA_HOME="/usr/lib/jvm/jdk1.7"
然后我就可以再次登录。
现在我有两个问题:
PATH="$PATH:$JAVA_HOME/bin"
为什么我添加该行后无法登录/etc/envirionment
?设置的变量
/etc/environment
是否可供所有用户使用?
答案1
/etc/environment
不是作为脚本执行而是作为配置文件读取,因此没有可用的 shell 扩展,因此无法读取变量。
如果您不想使用变量,请使用会话范围的变量~/.pam_environment
。
参考
- 环境变量在Ubuntu 帮助社区
答案2
好的。我检查了一下 - 它一定以某种方式依赖于 PAM,如果将以下内容写入 /etc/environment:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.7/bin" 然后获取它,它将正常工作,您将能够登录