【问题标题】:pdftk (or other linux package dependencies) with shinyapps.io带有 shinyapps.io 的 pdftk(或其他 linux 软件包依赖项)
【发布时间】:2018-04-03 17:19:30
【问题描述】:

我希望编写一个依赖于外部 ubuntu 包/库的闪亮包。在这种情况下pdftk。在最基本的情况下

服务器.R

shinyServer(function(input, output) {

  output$text <- renderText({
      call = system2('pdftk',stdout = TRUE)
      'meh'
  })
})

ui.R

shinyUI(fluidPage(
  textOutput("text")
))

在 shinyapps.io 仪表板中提供日志消息 sh: 1: pdftk: not found。有没有办法请求 shinyapps.io 服务器安装所需的 linux 依赖项?

注意:这很难用谷歌搜索,因为包和依赖项往往会给我与 R 包相关的链接。如果有人有更好的关键字,我可以编辑帖子。

【问题讨论】:

  • 在检查 shinyapps.io 仪表板之前,它是否在您的本地计算机上工作?
  • 我的猜测是 pdftk 无法通过$PATH 访问。如果您的 R 会话没有您假设的所有权限,就会发生这种情况。
  • @amrrs 如果我在本地机器上运行它,它会给我SYNOPSIS pdftk... 弹出的东西。 @roman,可能是这种情况,但我猜它甚至没有安装。它默认安装在我的 ubuntu 机器中,但没有安装在 windows 子系统中,所以我想它可能只是没有它。
  • shinyapps 需要所有依赖项都在项目中。他们在一个常见问题解答中明确指出,如果您需要其他 操作系统 软件包/二进制文件可用,您应该提出问题。 support.rstudio.com/hc/en-us/articles/… 每个操作系统 pkg/app 都扩展了他们构建的 linux 系统的攻击面,所以如果他们拒绝这一点,请不要难过,特别是因为 R 有 pdftools
  • 我明白了,谢谢。我想用这个填写一个 pdf 表格,所以我认为它超出了pdftools 的范围

标签: r shiny shinyapps


【解决方案1】:

正如@hrbmrstr 所说,添加附加依赖项的方法是添加到github repo for shiny app dependencies。此 repo 包含在安装依赖包之前执行的代码。这意味着您想要添加的任何依赖项都必须是包所必需的,否则它将永远不会被加载。

基于this pull request,包不必在 CRAN 上,但我不确定他们是否会接受每个人随机包的所有依赖项。

对于 pdftk,animation 包已经使用了 pdftk,但没有强制它的存在。我打开了a pull request,其中包括将pdtfk 安装到animation 的预安装代码,现在已被接受。这意味着只要应用程序使用animation包,pdftk就会安装在系统中,可以与pdtk动画功能或system/system2一起使用。

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 2018-04-21
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多