我们通过puppet管理集群中的R包,我们创建了一个具有如下命令的文件。我们内部有R package repo的镜像。
install.packages(“BH”,repos = NULL,dependencies = TRUE,contriburl = http://our_internal_repo.com)
在rPackages.xt
中这个使用puppet我们正在通过RScript rPackages.txt执行
现在在下周我们又增加了3个附加包,我们修改了rPackages以包含新包的其他行。
既然scirpt将从头到尾阅读,它将尝试重新安装所有包。
我的问题是,如果安装的版本与我们内部仓库中的版本不同,如何安装软件包。
如何在RScript中执行这些检查并相应地执行puppet。
管理R安装的最佳做法是什么。
由于
答案 0 :(得分:0)
将Rscript更改为
if("BH" %in% rownames(installed.packages()) == FALSE) {install.packages("BH")}
对于版本,您可能会以某种方式使用packageVersion
。