Ubuntu

更改所有使用者的 PATH 環境變數。(Ubuntu)

  • March 6, 2011

我最近在 Ubuntu 8.04 伺服器上編譯了 Ruby Enterprise Edition (REE)。

我想更新我的 PATH 以確保這個新版本的 Ruby(在 中找到/opt/ruby_ee/bin)取代/usr/local/bin. (不過,我仍然想要舊版本。)

我希望這些 PATH 更改能夠影響所有使用者和 crontab。

嘗試的解決方案#1:

REE 文件建議將 REE bin 文件夾放在/etc/environment. 我將此文件中的 PATH 更改為:

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

這一點都沒有影響到我PATH

嘗試的解決方案#2:

接下來,我按照這些說明更新了 PATH/etc/login.defs/etc/crontab. (我沒有改變/etc/sudoers。)

PATH即使在註銷並重新啟動伺服器後,這也不會影響我的。

其他資訊:

  • 我似乎遇到了與此處描述的相同的問題
  • 我正在使用命令“ echo $PATH”和“ ruby -v”進行測試。
  • 我的外殼是 bash。我.bashrc的不會覆蓋我的 PATH。
  • 是的,我聽說過 Ruby 版本管理器項目。;)

您是否嘗試過更改預設的 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 中)。

需要明確的/etc/environment是,在您打開新的外殼/再次登錄之前不會載入。

你註銷然後再開機嗎?

引用自:https://serverfault.com/questions/243791