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") )