为所有用户更改PATH环境variables。 (Ubuntu的)

我最近在Ubuntu 8.04服务器上编译了Ruby Enterprise Edition(REE)。

我想更新我的path,以确保这个新版本的Ruby(在/opt/ruby_ee/bin )取代/usr/local/bin的旧版本。 (尽pipe如此,我仍然想要旧版本。)

我想这些PATH更改影响所有用户和crontabs。

尝试解决scheme#1:

REE文档build议将REE bin文件夹放置在/etc/environment中的全局PATH开头。 我改变了这个文件中的PATH来读取:

 PATH="/opt/ruby_ee/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 

这完全不影响我的PATH

试图解决scheme2:

接下来,我按照这些说明更新了/etc/login.defs/etc/crontab的PATH设置。 (我没有改变/etc/sudoers 。)

即使注销并重新启动服务器,也不会影响我的PATH

其他信息:

  • 我似乎在这里描述了同样的问题 。
  • 我正在使用命令“ echo $PATH ”和“ ruby -v ”进行testing。
  • 我的壳是bash。 我的.bashrc不覆盖我的path。
  • 是的,我听说过Ruby Version Manager项目。 ;)

你有没有尝试改变默认的bashrc? 这应该位于/ etc / bashrc或/etc/bash.bashrc(我认为这是Ubuntu中的第二个)。 然后在您的主目录中,确保您的.bash_profile包含:

 if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi 

这将确保系统定义的variables读入用户的shell。 这个if语句应该默认包含在当你adduser (我知道它在RHEL中)时创build的.bash_profile中。

只是要清楚,直到你打开一个新的shell /再次login/etc/environment才会被加载。
你注销了吗?