web-dev-qa-db-ja.com

すべてのユーザーのPATH環境変数を変更します。 (Ubuntu)

最近、Ubuntu8.04サーバーでRuby Enterprise Edition(REE)をコンパイルしました。

PATHを更新して、この新しいバージョンのRuby(/opt/Ruby_ee/binにあります)が/usr/local/binの古いバージョンよりも優先されるようにします。(まだ古いバージョンが必要です)でも周り。)

これらのPATHの変更がすべてのユーザーとcrontabに影響するようにしたいと思います。

解決策#1の試み:

REEのドキュメントでは、REEbinフォルダーを/etc/environmentのグローバルPATHの先頭に配置することを推奨しています。このファイルの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および/etc/crontabのPATH設定を更新しました。 (私は/etc/sudoersを変更しませんでした。)

ログアウトしてサーバーを再起動した後でも、これは私のPATHにも影響しませんでした。

その他の情報:

  • 私は同じことをしているようです ここで説明されている問題
  • コマンド「echo $PATH」と「Ruby -v」を使用してテストしています。
  • 私のシェルはbashです。私の.bashrcは私のPATHを上書きしません。
  • はい、Rubyバージョンマネージャープロジェクト。;)について聞いたことがあります。
4
Wally Glutton

デフォルトのbashrcを変更してみましたか?これは/ etc/bashrcまたは/etc/bash.bashrcのいずれかに配置する必要があります(Ubuntuでは2番目だと思います)。次に、ホームディレクトリで、.bash_profileに次のものが含まれていることを確認します。

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

これにより、システム全体で定義された変数がユーザーのシェルに確実に読み込まれます。このifステートメントは、adduserのときに作成される.bash_profileにデフォルトで含まれている必要があります(RHELにあることはわかっています)。

4
ajdecon

ただ明確にします、 /etc/environmentは、新しいシェルを開くか、再度ログインするまでロードされません。
ログオフしてからオンにしましたか?

2
Bart De Vos