RVM + TMUX - $ PATHに重複したエントリがあります。

RVM + TMUX - $ PATHに重複したエントリがあります。

私のLinux端末プロファイル(.bash_profile、.profile、.bashrc)は、前にいくつかのカスタムディレクトリを追加して$ PATHを拡張します。これは一度だけ発生します(そして一度だけ発生するように強制するためにいくつかのENV変数ベースのガードも含めました)。また、私のカスタムディレクトリの前に.bash_profile.rvmスクリプト()を追加しました。~/.rvm/scripts/rvmこれらのRVMディレクトリは最前面になければなりません。

きれいなbashセッションにある限り、すべてが正常です。

ただし、実行すると、tmux設定ファイルのディレクトリエントリがPATHの前に二重に追加されます(ENV変数の保護に関係なく)。 tmuxには2つのENV変数環境があり、それらをマージしているようです。

.rvmスクリプトの前に追加されたエントリは一度だけ前に追加され、tmuxシナリオでは最初に終わらないため、問題になります。

これが起こらないようにするにはどうすればよいですか?

編集 - 追加情報: すべてのPATH追加項目は前にあり、().profileで囲まれています。私のすべてのGUI端末は「ログインシェル」として実行されます。.bash_profile. ~/.profile

各構成ファイルに二重埋め込みを防ぐために、次の形式のガードを使用します。

    if [ "$PROFILE_SOURCED" != "true" ]; then
         export PROFILE_SOURCED=true
    ...
    fi

PATHに項目を追加することはexport PATH=entry:$PATH

ベストアンサー1

回避策:

  1. 私のPATH操作コードの周りにガードを配置しました。.profile

    if [ "$PATHS" != "true" ]; then
        export PATHS="true"
    #Manipulate and export PATH over here
    fi
    
  2. .bash_profile周辺ファイルレベルの保護が削除されました。.bashrc

  3. 重要: 再起動サーバーtmux。 (killall tmux) - マニュアルは、サーバーが親シェルから継承した独自の環境を維持していることを示しています。設定ファイルが変更されると、tmux再起動が必要です。

おすすめ記事