2016-09-25 19 views
1

これは幾分一般化されたthis questionのバージョンです。 R_LIBS_SITEを設定するにはどうすればよいですか? CentOS 7.2とopenSUSE 42.1の両方で、最新のR 3.3.1を使って適切な値を得ることができません。R_LIBS_SITEの設定方法やパッケージサイトの共有方法は?

EPELからRとCentOSの7.2(のLinux x86_64版)で

私が取得:

R version 3.3.1 (2016-06-21) -- "Bug in Your Hair" 
... 
Platform: x86_64-redhat-linux-gnu (64-bit) 
... 
> .libPaths() 
[1] "/usr/lib64/R/library" "/usr/share/R/library" 
> .Library 
[1] "/usr/lib64/R/library" 
> .Library.site 
[1] "/usr/lib64/R/library" "/usr/share/R/library" 
> R.home(component = "home") 
[1] "/usr/lib64/R" 

しかし、それぞれのRenvironは、次のものが含まれます。

どうやら、この設定が正しく適用されていない
$ grep R_LIBS_SITE /usr/lib64/R/etc/Renviron 
R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/local/lib/R/library:/usr/lib64/R/library:/usr/share/R/library'} 

私はRを開始します。しかし、同じファイル内のR_LIBS_USERなどで、例えば の変更が適用されます。 R_LIBS_SITEが他の場所で上書きされる可能性がどこ

R_LIBS_SITE='/usr/local/lib/R/site-library' 

にそれを設定すると

> .Library.site 
character(0) 

を生成するのでまた、R_LIBS_SITEは完全に無視されていない私は表示されません。私はopenSUSEのと同様の動作を再現することができます

R --no-environ --no-site-file --no-init-file 

でそれを起動したとき、私はRで 同じ動作を取得します。

また、すべてのユーザーで共有されるパッケージサイトを設定する別の推奨方法がありますか?

答えて

2

問題の考えられる原因は、ディレクトリの一部が存在しないことです。存在しないディレクトリは、リストから黙って削除されます。だから、あなたは

R_LIBS_SITE='/usr/local/lib/R/site-library'

を設定し、ディレクトリが存在しない場合は、.Library.siteは(あなたの例のように)空の文字列になります。あなたの例の出力に続いて、ディレクトリ/usr/local/lib/R/site-library/usr/local/lib/R/libraryが存在しない場合、それらはあなたのRenvironファイルのR_LIBS_SITEで与えられたリストから静かに削除されます(あなたの出力のように)。

関連する問題