web-dev-qa-db-ja.com

/ etc / environmentを使用したシステム全体の環境変数の設定

PATHに追加して、コンピューター(Ubuntu)が(Rを起動するための)「R」コマンドを解釈する場所を認識できるようにします。ターミナルまたはRStudioがRをインストールした場所を見つけることができるように、これが必要です。

以下のすべてを実行しましたが、いずれもコマンドRを~/R/binのRインストールのディレクトリに永続的に関連付けません。

  1. export PATH=$PATH:$HOME/R/bin <-これは制定されたターミナルセッション内で機能しますが、2つ目のターミナルを開くと、PATHは$ HOME/R/binを追加する前の状態に戻ります

さまざまなWebサイトの推奨事項に基づいて、この行を2つの異なるファイルに追加すると、同じ「ローカルターミナルのみ」の動作が発生しました。

  1. Sudo vim ~/.profile

    export PATH=$PATH:$HOME/R/bin
    
  2. Sudo vim /etc/environment

    export PATH=$PATH:$HOME/R/bin
    

新しいターミナルセッションでRが認識されないのはなぜですか?

5
areyoujokingme

/etc/environmentファイルはスクリプトファイルではありません:exportは使用できません。また、$HOME型の変数展開はサポートされていません。simplevariable=valueペアのみです。そのため、そのファイルを使用するには、次のように既存の定義にパスを追加するだけです

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/username/R/bin"

ただし、システム全体PATHをこの方法でユーザーのホームディレクトリを含めるように設定することは疑わしい習慣です。ユーザー独自のシェルスタートアップファイルのいずれかを使用するには:~/.profileは通常環境変数に推奨されますが、ログインシェルによってのみ呼び出されるという不利な点があるため、それを有効にするには必要になりますログアウトして再度ログインするには-または、少なくとも新しいログインシェルを開始します。を使用して

    su - username

または

    su -l username

Sudoはこれらの個人ファイルの編集に使用しないでくださいであることに注意してください。これはrootが所有しているため、今後さらに問題が発生する可能性があります。既にSudo vimを使用している場合は、Sudo chownを使用して正しい所有権を復元する必要があります。

Sudo chown username:username ~/.profile

次に、好みのエディターを使用して目的のパスコンポーネントを追加できます。

vim ~/.profile

そのファイルの~/binの既存のパラダイムをコピーすることも検討できます。つまり、

# set PATH so it includes user's private R bin if it exists
if [ -d "$HOME/R/bin" ] ; then
    PATH="$HOME/R/bin:$PATH"
fi
7
steeldriver