17

重複する可能性のある質問ですが、問題が同じかどうかを判断するための RStudio の起動プロセスがわかりません。LinuxでRStudio Desktop v0.99.442を使用しています。RStudio 内のコンソールから実行します。

system("echo $PATH")
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

ただし、私の実物$PATH(コンソールから見たときに表示echo $PATHされます) には、R から system() を使用して呼び出すことができるようにしたい他の多くのプログラムがあります。たとえば、私の .bashrc には tabix があります。に追加され$PATHます。

奇妙なことに、コンソール内の R セッションから同じコマンドを実行すると、

system("echo $PATH")
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games;/path/to/bcftools-1.2/htslib-1.2.1/tabix

どちらが正しい。したがって、RStudio 内の R セッションとコンソール内の R セッションには違いがあります。それらは同じ環境変数をロードしません。RStudio で正しいバージョンの $PATH を使用するにはどうすればよいですか?

4

3 に答える 3

19

コマンド ラインから R を起動して を実行するとsystem(echo $PATH)、コマンド ライン セッションから Bash 環境が継承されます。たとえば、コマンド ラインからではなく、Mac の Dock または Finder から、または Ubuntu のシステム アプリケーションとして RStudio を起動すると、RStudio はその環境を から取得しません/.bashrc。代わりに、システム全体の設定から環境変数を取得します。これらのシステム設定を検出する方法は、オペレーティング システムによって異なります。

Ubuntu

Ubuntuの環境変数に関するこの説明、特にデスクトップ アプリケーションのセクションを参照してください。

その説明によると:

アプリケーションの .desktop ファイルを編集して、アプリケーションに環境変数を追加できます。たとえば、環境変数 APPMENU_DISPLAY_BOTH=1 で「digiKam」を実行するには、対応する digikam.desktop ファイルを見つけ、env コマンドを使用して変数の設定をエントリ「Exec」に追加します。

RStudio.desktopファイルは、~/.local/share/applications/または/usr/share/applications/(ほとんどの場合、後者) にあります。そのファイルを編集して、次の行を含めます。

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games;/path/to/bcftools-1.2/htslib-1.2.1/tabix

マック

システム全体の環境変数は、Bash ではなく Launch Agent によって設定されます。Finder から起動したアプリケーションの環境変数を正確に設定する方法は、Mac OS X のバージョンによって異なります。この回答が役立つ場合があります。

~/Library/LaunchAgents/com.username.envvariables.plistこれを行う方法は、次の内容のファイルを追加することです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.username.envvariables</string>
    <key>ProgramArguments</key>
    <array>
      <string>sh</string>
      <string>-c</string>
      <string>
        launchctl setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games;/path/to/bcftools-1.2/htslib-1.2.1/tabix
      </string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

次に、そのファイルをロードする必要があります。

launchctl load ~/Library/LaunchAgents/com.username.envvariables.plist

Finder を再起動する必要がある場合があります。

killall -KILL Dock

次に、RStudio を再起動します。

于 2015-06-29T17:28:13.737 に答える
1

~/.Renviron に PATH を追加することで (MAC 上で) この問題を解決しました。これを実行できます:

$ touch ~/.Renviron | R_PATH="PATH=$PATH" | echo $R_PATH >  ~/.Renviron

Rstudioを再起動します。これで、両方のケースで同じ $PATH を持つ必要があります。

于 2016-03-03T13:29:55.093 に答える