我只想设置一个系统范围的环境变量JAVA_HOME
,所有用户,包括 root用户。
要求:
- 普通用户可以访问
- 可供 root 访问
- 始终加载,不仅适用于 bash(gnome-terminal 默认不启动 bash)
- 在 Ubuntu、Debian 和 Red Hat 上工作
- 如果可以轻松编写脚本就好了
答案1
对于 Ubuntu 以及可能的其他 *nix 平台,在/etc/profile.d
named中添加一个新脚本java.sh
,例如:
echo "export JAVA_HOME=/usr/lib/jvm/default-java" > /etc/profile.d/java.sh
其他被排除的考虑因素:
/etc/environment
- 可以工作,但使用其他工具维护起来会更困难(或者人们会编辑它);并且/etc/profile
- 缺点与/etc/environment
答案2
在 Debian/Ubuntu 上/etc/环境
我不知道 Red Hat 的对应版本。
答案3
我不明白为什么您排除了 /etc/profile。那是正确的位置。
答案4
附注:看一下模块环境每次我需要为数十或数百名用户提供复杂、版本化、可自我扩展、简洁的 UNIX 环境时,我都会使用它。它主要用于大规模多用户 HPC 环境。仅将其用于一个特定变量肯定是过度设计,但一旦您需要多个软件包及其环境,它就会发挥出色的作用。