Linux下R包安装位置的逻辑

mat*_*t_k 10 linux r

各种R封装的不同安装位置背后的逻辑是什么?我似乎在我的linux机器上的几个不同位置安装了软件包.这是典型行为,如果是这样,在/ usr/lib/R/library vs/usr/lib/R/site-library中安装软件包的合理性是什么?我并不关心软件包的安装位置,但是将安装分布在我的系统的不同位置似乎有点愚蠢.

Renviron有下面的评论,这似乎表明/ usr/lib/R/site-library是针对Debian打包的软件包,但并没有真正解释其他两个目录的用途.另外,通过在列表中设置/ usr/lib/R/library不会使它不是install.packages()的默认目录吗?

# edd Apr 2003  Allow local install in /usr/local, also add a directory for
#               Debian packaged CRAN packages, and finally the default dir 


> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"     
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 8

马特,

您将错误的方法从特定(Debian/Ubuntu)推广到通用(所有Linux发行版).

两个使用Debian的R Core成员向我建议了这个特殊的设置(这是在Ubuntu出现之前).这不是 R-wide建议,这就是为什么你不会在手册中找到它,而是R电源用户在Debian和Debian系统上实现的具体建议.

基本的想法是

  • 保持完全忠实于分离/usr/,/var/,...要由处理包管理系统(例如apt-get,dpkg在一方面,...),和/usr/local/...等通过,另一方面用户:这两个应从未混合

  • 以便/usr/local/lib/R/site-library得到在由所发射的列表中的第一点.libPaths(),从而成为缺省值,从而确保用户安装的软件包下面最终/usr/local/按照先前的点

  • 所以,下面/usr我们得到的r推荐的包装(包括在基础研发源太:之间的分离boot,grid,lattice,...)内/usr/lib/R/library,然后将所有其他包管理控制 r-cran-*之下的包/usr/lib/R/site-library.所以,例如r-cran-xml在那里结束r-cran-zoo,或者......

我仍然认为分裂是非常好的,这就是我在Debian R软件包中维护这个设置的原因.

在所有用户的网站范围内使用本地软件包是一个多用户操作系统的好主意.