r - 在 ShinyServer 上将 `shiny` 的默认加载更改为特定的 `.libPaths()`
问题描述
问题
我正在我的大学维护的闪亮服务器上部署一个闪亮的应用程序,其中有许多.libPaths()
包含不同版本的包。
> .libPaths()
[1] "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4"
[2] "/nfs/admin/software/xenial/system-gcc/R_libs"
[3] "/usr/local/lib/R/site-library"
[4] "/usr/lib/R/site-library"
[5] "/usr/lib/R/library"
当我闪亮的应用程序启动时,shiny
默认情况下从 加载.libPaths()[2]
,然后导入R6
V.2.2.1,也从这个路径。
但是,我的代码取决于R6
>= V.2.2.2,我在.libPaths()[1].
让我的 SysAdmin 更新很简单R6
,.libPaths()[2]
但他们不能,因为其他人的应用程序依赖于该路径上的库,我们不想破坏这些。
我试过了:
从
R6
_.libPaths()[1]
detach("package:R6", unload=TRUE, force = TRUE, character.only = TRUE) library(R6, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4")
从
shiny
_.libPaths()[1]
detach("package:shiny", unload=TRUE, force = TRUE, character.only = TRUE) library(shiny, lib.loc = "/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4")
.libPaths()
在文件中从头开始设置我global.R
以仅包含我想要的路径。.libPaths(.libPaths()[1])
在包含以下文件的
etc
文件夹下添加一个文件夹(来自此处的建议):"/zeolite/rpauloo/R"
Rprofile.site
.First <- function(){ .libPaths("/zeolite/rpauloo/R/x86_64-pc-linux-gnu-library/3.4") }
这些方法都不起作用。为什么?
R6
是一个附加的包,所以它不能被卸载。- 不知道为什么卸载/重新加载闪亮不起作用
- Shiny Server在获取文件之前
shiny
从.libPaths()[2]
一开始就加载global.R
,因此设置libPaths()
无济于事。 - 该
Rprofile.site
文件可能位于错误的目录中,但将其放在管理目录中会与其他应用程序混淆
问题
如何配置我的闪亮应用程序以在启动时shiny
从特定加载.libPath
?
还是我误解了这个问题?还有其他方法可以解决这个问题吗?
解决方案
推荐阅读
- c# - Rotativa.AspNetCore 在 smarterasp 中部署后不工作
- mfc - MFC 中的停靠控制栏
- unity3d - 如何在 Travis Ci 中使用 Unity 项目?
- excel - VBA/Excel - 将范围名称设置为特定值
- java - 如何在双击时从子小部件中使 JOptionPane “确定”本身
- java - 如何在我的项目中使用spring core而不是spring boot实现带有saml的SSO?
- ios - 使用 FirebaseAnalytics 的 setAPNSToken 方法上的应用程序崩溃
- puppet - 维护子文件夹和文件的权限,如源:puppet
- javascript - 在 d3.json 中放一个链接
- neo4j - 如果 Cypher 查询中的属性为 Null,则跳过其他属性的关系创建