6

ユーザーのアカウントで opencpu からインストールされた R パッケージにアクセスしようとしています。そのユーザーとして R を起動すると、パッケージがインストールされていることがわかります。

> installed.packages() 
           Package      LibPath                                         
RLIM       "RLIM"       "/limdata/ali/R/x86_64-pc-linux-gnu-library/3.0"
...
> system('whoami');
ali

ただし、opencpu からライブラリにアクセスしようとすると、パッケージが見つからなかったことを示すエラーが発生します。

$ curl -L http://<my.server>/ocpu/user/ali/library/RLIM
there is no package called 'RLIM'

In call:
find.package(pkgname, lib.loc = lib.loc)
# from same server, to confirm opencpu is running... 
$ curl -L http://<my.server>/ocpu/library 
base
bitops
boot
brew
...

どんな助けでも大歓迎です!

プラットフォーム情報:

  • ホスト: Ubuntu 12.04
  • opencpu-server 1.0.4-precise0
  • opencpu-lib: 1.0.4-precise0
  • R バージョン 3.0.2 (2013-09-25) -- 「フリスビー セーリング」
4

1 に答える 1

1

ホーム ライブラリが の既定の場所にないようです/home/ali/。したがって、パッケージにアクセスするには、いくつかの追加手順が必要です。

まず第一に、デフォルトのセキュリティ プロファイルでは、OpenCPU が にアクセスすることを許可しません/limdata/。これが実際に問題であることを確認するには、と/var/log/kern.logを含む行を調べて検索します。PDF サーバー マニュアル「セキュリティ プロファイルのカスタマイズ」というタイトルのセクションをお読みください。APPARMORDENIED

/etc/apparmor.d/opencpu.d/customホーム ライブラリをセキュリティ プロファイルに追加するには、次の行を編集して追加します。

/limdata/ r,
/limdata/** mrix,

その後、apparmor と opencpu を再起動します。

 sudo service apparmor restart
 sudo service opencpu restart

これにより、セキュリティ制限が処理されます。それでうまくいくことを願っています。正直なところ、ホームディレクトリが外部にあるシナリオはテストしていませんが/homeR_LIBS_USER環境変数が適切に構成されていれば機能するはずです。そうでない場合はお知らせください:-)

于 2013-10-17T18:39:50.917 に答える