更改所有用户的 PATH 环境变量。(Ubuntu)

更改所有用户的 PATH 环境变量。(Ubuntu)

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

我想更新我的 PATH 以确保这个新版本的 Ruby(在 中找到/opt/ruby_ee/bin)取代了 中的旧版本/usr/local/bin。 (但我仍然希望保留旧版本。)

我希望这些 PATH 更改能够影响所有用户和 crontab。

尝试的解决方案 #1:

REE 文档建议将 REE bin 文件夹放在全局 PATH 的开头/etc/environment。我将此文件中的 PATH 更改为:

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

PATH这对我一点影响都没有。

尝试的解决方案 #2:

接下来我关注这些说明/etc/login.defs并更新了和中的 PATH 设置/etc/crontab。(我没有更改/etc/sudoers。)

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

其他信息:

  • 我似乎也有同样的情况此处描述的问题
  • 我正在使用命令“ echo $PATH”和“ ruby -v”进行测试。
  • 我的 shell 是 bash。我的 shell.bashrc不会覆盖我的 PATH。
  • 是的,我听说过 Ruby 版本管理器项目。;)

答案1

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

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

这将确保系统范围内定义的变量被读入用户的 shell。默认情况下,此 if 语句应包含在您创建的 .bash_profile 中adduser(我知道它在 RHEL 中)。

答案2

需要说明的是,/etc/environment只有您打开新 shell/再次登录后才会加载。
您是否注销并重新登录?

相关内容