如何在闪亮的应用程序中使用 renv 包以避免在闪亮的服务器上安装新包?
How to use renv package in shiny app to avoid installing new packages on shiny server?
我想测试 renv
闪亮应用程序包。
这是我的虚拟应用程序:
library(pool)
library(fresh)
library(shiny)
ui <- fluidPage(
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
output$distPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
shinyApp(ui = ui, server = server)
请注意,我只是加载了 2 个库 pool
和 fresh
而没有使用它们。
来自 renv
包的 init()
命令正在我的项目路径上创建一个本地库:
renv::init("/home/z0044uca/mytest_renv/")
* Initializing project ...
* Discovering package dependencies ... Done!
* Copying packages into the cache ... [21/21] Done!
The following package(s) will be updated in the lockfile:
# CRAN ===============================
- BH [* -> 1.72.0-3]
- R6 [* -> 2.4.1]
- Rcpp [* -> 1.0.5]
- base64enc [* -> 0.1-3]
- commonmark [* -> 1.7]
- crayon [* -> 1.3.4]
- digest [* -> 0.6.25]
- fastmap [* -> 1.0.1]
- glue [* -> 1.4.2]
- htmltools [* -> 0.5.0]
- httpuv [* -> 1.5.4]
- jsonlite [* -> 1.7.1]
- later [* -> 1.1.0.1]
- magrittr [* -> 1.5]
- mime [* -> 0.9]
- promises [* -> 1.1.1]
- renv [* -> 0.12.5]
- rlang [* -> 0.4.7]
- shiny [* -> 1.5.0]
- sourcetools [* -> 0.1.7]
- withr [* -> 2.2.0]
- xtable [* -> 1.8-4]
* Lockfile written to '~/mytest_renv/renv.lock'.
* Project '~/mytest_renv' loaded. [renv 0.12.5]
Restarting R session...
* Project '~/mytest_renv' loaded. [renv 0.12.5]
我的问题是如何在不在服务器上安装两个软件包(pool
和 fresh
)的情况下将应用程序部署到我的 shiny- 服务器。
当我将整个文件夹 (mytest_renv
) 复制到我的服务器并尝试在浏览器中 运行 应用程序时,出现以下错误(在 log
文件中)
Warning message:
The following package(s) are missing entries in the cache:
base64enc, BH, commonmark, crayon, DBI, digest, fastmap,
fresh, fs, glue, htmltools, httpuv, jsonlite, later,
magrittr, mime, pool, promises, R6, rappdirs, Rcpp, rlang,
rstudioapi, sass, shiny, sourcetools, withr, xtable
These packages will need to be reinstalled.
Error in loadNamespace(name) : there is no package called ‘digest’
Calls: local ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
我原以为我的应用程序目录中的 renv
文件夹会处理所有包和依赖项。
https://community.rstudio.com/t/shiny-server-renv/71879/2 可能相关——您可能想在复制项目文件夹之前调用 renv::isolate()
。
我想测试 renv
闪亮应用程序包。
这是我的虚拟应用程序:
library(pool)
library(fresh)
library(shiny)
ui <- fluidPage(
titlePanel("Old Faithful Geyser Data"),
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
mainPanel(
plotOutput("distPlot")
)
)
)
server <- function(input, output) {
output$distPlot <- renderPlot({
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
shinyApp(ui = ui, server = server)
请注意,我只是加载了 2 个库 pool
和 fresh
而没有使用它们。
来自 renv
包的 init()
命令正在我的项目路径上创建一个本地库:
renv::init("/home/z0044uca/mytest_renv/")
* Initializing project ...
* Discovering package dependencies ... Done!
* Copying packages into the cache ... [21/21] Done!
The following package(s) will be updated in the lockfile:
# CRAN ===============================
- BH [* -> 1.72.0-3]
- R6 [* -> 2.4.1]
- Rcpp [* -> 1.0.5]
- base64enc [* -> 0.1-3]
- commonmark [* -> 1.7]
- crayon [* -> 1.3.4]
- digest [* -> 0.6.25]
- fastmap [* -> 1.0.1]
- glue [* -> 1.4.2]
- htmltools [* -> 0.5.0]
- httpuv [* -> 1.5.4]
- jsonlite [* -> 1.7.1]
- later [* -> 1.1.0.1]
- magrittr [* -> 1.5]
- mime [* -> 0.9]
- promises [* -> 1.1.1]
- renv [* -> 0.12.5]
- rlang [* -> 0.4.7]
- shiny [* -> 1.5.0]
- sourcetools [* -> 0.1.7]
- withr [* -> 2.2.0]
- xtable [* -> 1.8-4]
* Lockfile written to '~/mytest_renv/renv.lock'.
* Project '~/mytest_renv' loaded. [renv 0.12.5]
Restarting R session...
* Project '~/mytest_renv' loaded. [renv 0.12.5]
我的问题是如何在不在服务器上安装两个软件包(pool
和 fresh
)的情况下将应用程序部署到我的 shiny- 服务器。
当我将整个文件夹 (mytest_renv
) 复制到我的服务器并尝试在浏览器中 运行 应用程序时,出现以下错误(在 log
文件中)
Warning message:
The following package(s) are missing entries in the cache:
base64enc, BH, commonmark, crayon, DBI, digest, fastmap,
fresh, fs, glue, htmltools, httpuv, jsonlite, later,
magrittr, mime, pool, promises, R6, rappdirs, Rcpp, rlang,
rstudioapi, sass, shiny, sourcetools, withr, xtable
These packages will need to be reinstalled.
Error in loadNamespace(name) : there is no package called ‘digest’
Calls: local ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
我原以为我的应用程序目录中的 renv
文件夹会处理所有包和依赖项。
https://community.rstudio.com/t/shiny-server-renv/71879/2 可能相关——您可能想在复制项目文件夹之前调用 renv::isolate()
。