【问题标题】:Shiny server - how to install packages in localhost?闪亮的服务器 - 如何在 localhost 中安装软件包?
【发布时间】:2016-05-08 20:12:01
【问题描述】:

我已经按照here 的步骤在我的本地机器上安装了 Shiny Server。

我还设法让默认示例应用程序在 http://127.0.0.1:3838/sample-apps/hello/ 运行

但是当我想运行我一直在 RStduio 上工作的应用程序时,我收到了这个错误,

发生错误

应用程序启动失败。

应用程序在初始化期间退出。

库中的错误(plyr):没有名为“plyr”的包调用: runApp ... sourceUTF8 -> eval -> eval -> ..stacktraceon.. -> 库 执行停止

我已经通过 RStudio 安装了所有的包,它们都在这个目录中,

/home/tealou/R/x86_64-pc-linux-gnu-library/3.2/

我可以看到 plyr 已经安装了。

.../3.2/
      plyr/

但是为什么Shiny Server没有提取上面目录中的包呢?

那么我应该在哪里安装服务器的软件包?以及如何?

有什么想法吗?

编辑:

# Instruct Shiny Server to run applications as the user "shiny"
run_as shiny;

# Define a server that listens on port 3838
server {
  listen 3838;

  # Define a location at the base URL
  location / {

    # Host the directory of Shiny Apps stored in this directory
    site_dir /srv/shiny-server;

    # Log all Shiny output to files in this directory
    log_dir /var/log/shiny-server;

    # When a user visits the base URL rather than a particular application,
    # an index of the applications available in this directory will be shown.
    directory_index on;
    PATH=/home/tealou/R/x86_64-pc-linux-gnu-library/3.2/
  }
}

【问题讨论】:

    标签: r shiny-server shiny


    【解决方案1】:

    您是否知道shiny-server.conf 文件知道在您的系统中哪里可以找到 R 安装?

    请阅读:

    Shiny Server 期望 R 可以作为名为 R 的可执行文件使用,并且 位于您运行 shiny-server 的用户的 PATH 中。请注意,在 某些 CentOS 系统,PATH 将被启动脚本覆盖 到 /sbin:/usr/sbin:/bin:/usr/bin。在这样的系统上,如果 R 不是 在这些位置之一可用(无论用户的路径如何), 您需要调整启动脚本。

    要允许 Shiny Server 在其他位置搜索 R,您需要 更改 /etc/init.d/shiny-server 中的文件或 /etc/init/shiny-server.conf 取决于你的启动系统 使用(如停止和启动中所述。您可以调整 PATH 变量以包含将在其中找到 R 的目录,或 你可以设置一个名为 R 的环境变量来告诉 Shiny Server 它应该在哪里寻找可执行文件。

    如果选择调整PATH,可以添加所在目录 在定义 PATH 的行中找到名为 R 的可执行文件 环境变量(PATH=/sbin:/usr/sbin:/bin:/usr/bin)。

    这里有更多信息:https://rstudio.github.io/shiny-server/latest/#configuration-settings

    还有一个明显的问题,以防万一:你的代码中有library(plyr),对吗?

    【讨论】:

    • 感谢您的回答。 you have library(plyr) in your code, right? 是的,我的代码中有它。
    • PATH=/sbin:/usr/sbin:/bin:/usr/bin 我遇到过这部分,但我不明白 sbin: 和 bin: 是什么。我必须用其他东西代替它们吗?例如,您的意思是在shiny-server.conf 中添加PATH=/home/tealou/R/x86_64-pc-linux-gnu-library/3.2/?请参阅我上面的编辑。但无论如何它都不起作用。 Rstudio 在这方面的文档很差......
    【解决方案2】:

    由于shiny-server 在shinyuser 上运行,提供任何软件包的最佳方式是通过以下方式为所有用户安装它:

    sudo su - -c "R -e \"install.packages(c('plyr'), repos='http://cran.rstudio.com/')\""
    

    通过此解决方案,您无需对 conf 文件进行任何更改。

    【讨论】:

      猜你喜欢
      • 2018-04-21
      • 2013-04-10
      • 2021-04-24
      • 2023-03-24
      • 2018-01-23
      • 2020-06-05
      • 2018-11-23
      • 1970-01-01
      • 2013-02-08
      相关资源
      最近更新 更多