我有几个使用R软件包的unix服务器,它安装在共享的R库文件夹中。这些包是从这个共享文件夹中延迟加载的(这是默认设置)。
现在我想更新软件包:
1)在不关闭所有R实例的情况下可以(并且干净)吗?
2)更准确地说,我关注以下内容:
2)a)当我尝试安装已加载的软件包时,我从用户界面获得的警告:
2)b)中
来自https://cran.r-project.org/doc/manuals/r-release/R-ints.html#Lazy-loading,
当加载使用它的包/命名空间时,包/命名空间环境会填充所有命名对象的promises:当评估这些promise时,它们会从数据库加载实际代码。
这是否意味着在对每个对象进行实际评估时R实例将再次从库文件夹中读取(在这种情况下,这意味着我需要停用延迟加载,或者在更新包之前关闭所有R实例)
3)是否有另一种方法可以在服务器网络上维护R包,这些服务器一直在运行脚本,而不必逐个使每个服务器脱机。
感谢您的输入
答案 0 :(得分:2)
你问了
1)在不关闭所有R实例的情况下可以(并且干净)吗?
我可以肯定是的,它是如何在各地工作和完成的。
至于
你读错了。建议使用R restart以确保加载新包,因为您无法将其插入正在运行的会话中。2)更准确地说,我关注以下内容:
进一步
3)是否有另一种方法可以在服务器网络上维护R包,这些服务器一直在运行脚本,而不必逐个使每个服务器脱机。
你从不必须离线服务器只是为了更新用户空间包。例如。我们甚至不会让他们脱机,比如我们每年两次升级整个Ubuntu版本。