1、在rstudio窗口,查看库文件的路径
> .libPaths() [1] "/home/enn_james/R/x86_64-unknown-linux-gnu-library/3.2" "/usr/local/lib64/R/library"其中”/usr/local/lib64/R/library”这一路径就是所有用户共享library的地方,因此想要让共享一个库只要将包安装到这一目录就可以了。
但是/usr/local/lib64/R/library这一路径的组权限默认是”staff”的,因此想要安装到这个目录还有赋予权限才行。
将library的组修改为mygroup这一分组,这样mygroup里的成员就可以把包安装到library目录里了。
sudo chgrp mygroup /usr/local/lib64/R/library
在R语言中安装所有人共享的包:
install.packages("ggplot2","/usr/local/lib64/R/library")
2、在rstudio下,安装包时,默认的库路径是"/home/enn_james/R/x86_64-unknown-linux-gnu-library/3.2",而R软件本身的默认路径是/usr/local/lib64/R/library。
3、在R的命令窗口输入
> library()可以看到全部的包,分为系统包和用户包,用户包在 "/home/enn_james/R/x86_64-unknown-linux-gnu-library/3.2",系统包在 "/usr/local/lib64/R/library"。
4、包的路径
用library(pkg)或require(pkg)加载包时,R会到.libPaths()的路径下去搜索,如果该库不存在就会报错。library()和require()的最大区别:找不到包时,library()抛出错误,require()打印警告信息并返回FALSE。
5、在linux下查看包的路径及权限
[root@hadoop1-mysql /]# sudo ls -all /usr/local/lib64/R/library
总用量 172
drwxr-xr-x 43 root root 4096 6月 1 07:52 .
drwxr-xr-x 10 root root 4096 5月 26 05:06 ..
drwxr-xr-x 7 root root 4096 5月 26 05:06 base
drwxr-xr-x 8 root root 4096 5月 26 05:06 boot
drwxr-xr-x 8 root root 4096 5月 26 05:06 class
drwxr-xr-x 9 root root 4096 5月 26 05:06 cluster
可见,/usr/local/lib64/R/library下的包是root权限的,是全局的;而/home/enn_james/R/x86_64-unknown-linux-gnu-library/3.2下的包的权限不是root权限的。
[root@hadoop1-mysql /]# sudo ls -all /home/enn_james/R/x86_64-unknown-linux-gnu-library/3.2
总用量 152
drwxr-xr-x 38 enn_james enn_james 4096 6月 2 03:02 .
drwxr-xr-x 3 enn_james enn_james 4096 5月 26 08:18 ..
drwxr-xr-x 7 enn_james enn_james 4096 5月 27 00:38 assertthat
drwxr-xr-x 7 enn_james enn_james 4096 5月 28 06:43 base64enc
drwxr-xr-x 6 enn_james enn_james 4096 5月 27 00:38 BH
drwxr-xr-x 7 enn_james enn_james 4096 5月 27 10:05 bitops
drwxr-xr-x 6 enn_james enn_james 4096 5月 27 10:13 brew
6、增加包的路径
.libPaths( c( .libPaths(), "~/userLibrary") )