如何在Ubuntu Desktop 12.04上设置ANT_HOME?

7
看起来Ubuntu使用〜/ .bashrc 〜/ .bash_profile 〜/ .pam_profile / etc / environment / etc / profile 非常相似。我想能够将配置添加到其中一个文件中(无论哪个是适当的文件),以将ANT_HOME 设置为我的Ant安装根目录的绝对路径(恰好是/ opt / apache / ant / 1.8.4 / apache-ant-1.8.4 / )。该变量需要像任何正常的环境变量那样“被接受”,这样我就可以随时在终端中打开它。如果我可以以这种方式设置它,让Java从 System.getProperty(“”)调用中读取它也很好。
  • 我应该使用哪个文件?
  • 如何实际设置它以满足上述要求?
提前感谢您的任何帮助或提示!
6个回答

13

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

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

来自这个页面

/etc/environment 是专门用于设置系统范围的环境变量。它不是脚本文件,而是由赋值表达式组成,每行一个。特别地,这个文件存储了系统范围的语言环境和路径设置。

在Ubuntu下,使用 /etc/profile 是非常Unix-style的方法,但其在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 - 如果其中一个存在,当以登录 shell 启动 bash 时,bash 将执行它而不是 "~/.profile"。Bash 会优先选择 ~/.bash_profile 而不是 ~/.bash_login。[...] 这些文件默认情况下不会影响图形会话。

  • ~/.bashrc - "...可能是设置变量最简单的地方"。


  • 6

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

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

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

      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日编译的,这意味着配置正常。


    2
    首先,在*nix上设置环境变量时,省略尾部斜杠是标准做法(您在您的末尾有一个尾部斜杠)。因此,您应该写成:
    export ANT_HOME=/opt/apache/ant/1.8.4/apache-ant-1.8.4
    而不是:
    export ANT_HOME=/opt/apache/ant/1.8.4/apache-ant-1.8.4/
    如果您只关心您的用户帐户您使用bash shell,则~/.bashrc、~/.bash_profile很好用。对于设置环境变量,使用哪个并没有太大区别。.bashrc会在每次打开新shell时重置它,而.bash_profile会在每次登录时重置它。
    /etc中的文件将为系统上的所有用户设置它(但可以在本地覆盖)。如果您要有不同的用户构建,并且您希望他们都具有相同的环境变量,则将其放入/etc/profile是个不错的选择。

    警告:至少在Ant 1.7.1中,像这样省略尾随斜杠将导致Ant无法加载库。我甚至不是在开玩笑;请参见https://bugzilla.redhat.com/show_bug.cgi?id=490542。 - Chris Smowton

    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
    

    希望它有所帮助..!!

    1

    要从Java中读取变量,请使用System.getenv().get("ANT_HOME")。了解更多信息在这里

    至于在哪里设置它,我更喜欢使用~/.bashrc,除非您将从其他用户或使用sudo运行程序。然后您应该使用/etc/environment


    1

    我更喜欢将所有环境变量放在不同的文件中,并从$HOME/.xsessionrc中进行source.xsessionrc只是一个简单的shell脚本,由登录管理器(如gdm、kdm等)在新的X会话后执行。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接