簡體   English   中英

RStudioServer - 從 R shell 加載/升級首選包集到默認系統路徑 (/opt/R/4.2.0/lib/R/library)

[英]RStudioServer - load/upgrade preferred set of packages to default sys path (/opt/R/4.2.0/lib/R/library) from R shell

雖然我是 unix 世界中的“老家伙”,但我對 RStudioServer 和 R 幾乎沒有經驗,在這里擔任癌症研究統計人員共享服務器的“管理員”。 而我的 unix“管理員”體驗是……生銹了!

我有一份我們的高級統計學家在研究中使用的大約 100 個包的列表,並且更願意直接從 R shell 加載(並定期更新)它們(與 RStudioServer 內部相比)。 我認為使用默認系統位置添加它們(/opt/R/4.2.0/lib/R/library)是通往 go 的方式。我認為 RStudioServer 設置仍然允許用戶加載自己的(這很好由我),但我認為根據我們的統計學家的要求加載默認組......是明智的。

我得到的加載這些包的命令具有以下語法(僅包括 90 line.sh 腳本的幾行)- 如果 package 不存在,它們似乎會安裝。

所以...我想知道我是否正確設置了環境(或?)變量,然后運行 R(以 root 身份?),發出所有這些命令...這些庫是否會適當地放置在我的庫文件夾中(對於 4.2)在環境變量中設置? (這個例子,它是 /opt/R/4.2.0/lib/R/library )??

由於這是 Linux,我們會在適當的時候需要源代碼,我認為這是該操作系統的默認加載。

如果有更好/更簡單的方法來做到這一點,我洗耳恭聽!

提前感謝您的任何想法...


r

if (!requireNamespace("markdown", quietly = TRUE)) install.packages("markdown")
if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools")
# graphical/table output
if (!requireNamespace("igraph", quietly = TRUE)) install.packages("igraph")
if (!requireNamespace("ggplot2", quietly = TRUE)) install.packages("ggplot2")
# advanced regression
if (!requireNamespace("glmnet", quietly = TRUE)) install.packages("glmnet")
if (!requireNamespace("sm", quietly = TRUE)) install.packages("sm")

RStudioServer packageStatus()

環境:CentOS 8 RStudio 服務器 1.4.1717-3 R 4.2 (4.1.3, 3.6.3)

這些問題很多。 這是一些答案的嘗試

我有一份我們的高級統計學家在研究中使用的大約 100 個包的列表,並且更願意直接從 R shell 加載(並定期更新)它們(與 RStudioServer 內部相比)。 我認為使用默認系統位置添加它們(/opt/R/4.2.0/lib/R/library)是通往 go 的方法。

我們將其自定義為 shared.network 掛載,但您當然不必這樣做。 如果您需要,請注意:

  • R_PROFILE_USER env var,它可以包含在每個 R 啟動序列中很早就運行的腳本的路徑
  • R_LIBS_USER env var,它可以包含一個新的默認文件夾 package
  • .libPaths R function,可以從 R 腳本中自定義使用的 package 文件夾 - R_PROFILE_USER 中的腳本或每個用戶的.Rprofile中的腳本。

我認為 RStudioServer 設置仍然允許用戶加載他們自己的(這對我來說很好),但我認為根據我們的統計員的要求加載默認組......是明智的。

我同意。

我得到的加載這些包的命令具有以下語法(僅包括 90 line.sh 腳本的幾行)- 如果 package 不存在,它們似乎會安裝。

不確定我是否理解。 您粘貼的命令是 R,而不是 sh。 要么將它們放在每個用戶的.Rprofile中,要么放在可集中訪問的腳本中,並使 R_PROFILE_USER 包含其路徑。

此外,關於定期更新 - 這是我使用的 R 腳本的簡化版本:

instpk <- as.data.frame(installed.packages())
oldpk <- as.data.frame(old.packages(checkBuilt=TRUE))

# base/recommended packages are best installed alongside R:
# (https://stackoverflow.com/a/9705725/89706)
base.rec.packages <- instpk[!is.na(instpk$Priority),]$Package
updatePk <- setdiff(oldpk$Package, base.rec.packages)

update.packages(ask=FALSE, oldPkgs=updatePk)

(我也自定義了一些文件夾和環境變量,但也許你不需要)。

HTH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM