7

看起来 Ubuntu 以非常相似的方式使用~/.bashrc, ~/.bash_profile, ~/.pam_profile, /etc/environment, and /etc/profile。我希望能够将配置添加到其中之一(哪个是适当的),以设置ANT_HOME为我的 Ant 安装根目录的绝对路径(恰好是/opt/apache/ant/1.8.4/apache-ant-1.8.4/)。这个变量需要像任何普通的环境变量一样被“尊重”,我可以随时打开一个终端echo。如果我能以这样的方式设置它,让 Java 在运行时从System.getProperty("")调用中读取它,那也很好。

  • 我使用哪个文件?
  • 我如何实际设置它以使其满足我的上述要求?

在此先感谢您的任何帮助或指点!

4

6 回答 6

13

对于全局设置,系统范围的环境变量

  • 利用/etc/environment
  • 不要使用/etc/profile, 或/etc/bash.bashrc

这个页面:

/etc/environment[...] 专门用于系统范围的环境变量设置。它不是一个脚本文件,而是由赋值表达式组成,每行一个。具体来说,此文件存储系统范围的区域设置和路径设置。

Using/etc/profile是一种非常 Unix-y 的方式,但在 Ubuntu 下它的功能大大减少。它的存在只是为了指向/etc/bash.bashrc和收集来自/etc/profile.d.

在我的系统上,profile.d 中唯一有趣的条目是/etc/profile.d/bash_completion.sh.

对于本地或每用户设置

推荐的 Ubuntu 页面的早期版本~/.pam_environment,但该页面当前建议如果这不起作用,您应该使用

  • ~/.profile- 这可能是放置环境变量分配的最佳文件,因为它在启动过程桌面会话期间由 DisplayManager 自动执行,当从文本控制台登录时由登录 shell 自动执行。

  • ~/.bash_profile~./bash_login- 如果其中之一存在,当 bash 作为登录 shell 启动时,bash 会执行它而不是“~/.profile”。Bash 会更~/.bash_profile喜欢 ~/.bash_login. [...] 默认情况下,这些文件不会影响图形会话。”

  • ~/.bashrc- “...可能是最容易设置变量的地方”。

于 2012-09-01T04:24:39.430 回答
6

首先,使用以下代码打开 bash 文件。

xxx@xxx-desktop:~$ sudo gedit /etc/bash.bashrc

然后,插入 Java home 作为 JDK 位置的路径,将 ANT home 作为路径 ANT 位置,如下所述,在 bash 文件的末尾。我根据我的机器输入了位置的路径。

  export ANT_HOME=/usr/share/ant
 export JAVA_HOME=/usr/lib/jvm/java-6-sun
 set path=$path $ANT_HOME/bin

最后,保存并关闭文件。如果配置正确,终端必须使用命令“ant –version”显示以下注释。

      xxx@xxx-desktop:~$ ant -version

Apache Ant 1.7.1 版本于 2008 年 11 月 10 日编译 说明配置没问题。

于 2013-01-02T07:32:30.170 回答
2

首先,在 *nix 上设置环境变量时省略尾部斜杠是标准做法。(你的末尾有一个斜杠)。所以你应该写:

出口 ANT_HOME=/opt/apache/ant/1.8.4/apache-ant-1.8.4

... 并不是:

出口 ANT_HOME=/opt/apache/ant/1.8.4/apache-ant-1.8.4/

~/.bashrc, ~/.bash_profile 如果您只关心您的用户帐户并且使用 bash shell,则它们是很好的选择。对于设置环境变量,您使用哪一个并没有太大区别。.bashrc 会在你每次打开一个新的 shell 时重置它,而 .bash_profile 会在你每次登录时重置它。

/etc 中的文件将为您系统上的所有用户设置它(但它可以在本地被覆盖)。如果您要构建不同的用户,并且希望他们都拥有相同的环境变量,那么 /etc/profile 将是放置它的好地方。

于 2012-09-01T04:30:53.640 回答
1

我更愿意将所有环境变量放到不同的文件中,并将source其从$HOME/.xsessionrc. .xsessionrc只是一个 shell 脚本,它在新的 X 会话之后由 gdm、kdm 等登录管理器执行。

于 2012-09-01T06:58:42.767 回答
1

要从 java 中读取变量,请使用System.getenv().get("ANT_HOME"). 在此处阅读更多相关信息。

至于在哪里设置它,我更喜欢使用 ~/.bashrc,除非你要从其他用户运行你的程序,或者使用sudo. 那么你应该使用/etc/environment

于 2012-09-01T05:52:26.593 回答
1

全局设置环境变量的最佳方法

第1步: 像这样
设置所有变量/etc/environment

JAVA_HOME=/usr/lib/jvm/java-6-sun
ANT_HOME=/usr/....<path to ant home>
set path="/usr/bin:<path2>:$JAVA_HOME/bin:$ANT_HOME/bin"

第 2 步: 在每个用户
的末尾添加此行~/.bashrc

source /etc/environment

第 3 步:
执行以下命令进行更改。

source ~/.bashrc



希望能帮助到你..!!

于 2014-02-26T08:31:41.417 回答