9

可能的重叠:
闪亮服务器 R 闪亮/闪亮服务器中缺少包 -
查找包时出现问题
R - 如何为闪亮服务器设置 install.packages() 的路径?- Ubuntu

我已经尝试并阅读了以上所有内容,但仍然无法让我的 Shiny Server 正常工作。

我按照http://www.rstudio.com/shiny/server/install-opensource上的安装说明进行操作,包括闪亮包的系统范围安装:

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

Shiny Server 已正确安装并正在运行,

~# sudo start shiny-server
start: Job is already running: shiny-server

但是当我浏览到时,domain:3838我可以看到欢迎来到闪亮的页面,但有错误

Error in eval(expr, envir, enclos) : The Shiny package was not found in the library. Ensure that Shiny is installed and is available in the Library of the user you're running this application as. Calls: local -> eval.parent -> eval -> eval -> eval -> eval Execution halted

打开 R, install.packages('shiny', repos='http://cran.rstudio.com/'), 然后library(shiny)或任何其他包,告诉我找不到它。

我真的很卡住,我不仅不能安装/加载任何包,我似乎无法找到它们的去向。

编辑:
install.packages(c("geonames"))
Installing package into ‘/usr/local/lib/R/site-library’ (as ‘lib’ is unspecified)

> library()
Warning message:
In library() :
libraries ‘/usr/local/lib/R/site-library’, ‘/usr/lib/R/site-library’ contain n o packages

> installed.packages()[,1:2]
           Package      LibPath
base       "base"       "/usr/lib/R/library"
boot       "boot"       "/usr/lib/R/library"
class      "class"      "/usr/lib/R/library"
cluster    "cluster"    "/usr/lib/R/library"
codetools  "codetools"  "/usr/lib/R/library"
compiler   "compiler"   "/usr/lib/R/library"
datasets   "datasets"   "/usr/lib/R/library"
foreign    "foreign"    "/usr/lib/R/library"
graphics   "graphics"   "/usr/lib/R/library"
grDevices  "grDevices"  "/usr/lib/R/library"
grid       "grid"       "/usr/lib/R/library"
KernSmooth "KernSmooth" "/usr/lib/R/library"
lattice    "lattice"    "/usr/lib/R/library"
MASS       "MASS"       "/usr/lib/R/library"
Matrix     "Matrix"     "/usr/lib/R/library"
methods    "methods"    "/usr/lib/R/library"
mgcv       "mgcv"       "/usr/lib/R/library"
nlme       "nlme"       "/usr/lib/R/library"
nnet       "nnet"       "/usr/lib/R/library"
parallel   "parallel"   "/usr/lib/R/library"
rpart      "rpart"      "/usr/lib/R/library"
spatial    "spatial"    "/usr/lib/R/library"
splines    "splines"    "/usr/lib/R/library"
stats      "stats"      "/usr/lib/R/library"
stats4     "stats4"     "/usr/lib/R/library"
survival   "survival"   "/usr/lib/R/library"
tcltk      "tcltk"      "/usr/lib/R/library"
tools      "tools"      "/usr/lib/R/library"
utils      "utils"      "/usr/lib/R/library"

任何帮助是极大的赞赏


会话信息:

> .libPaths() [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" [3] "/usr/lib/R/library"

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
4

4 回答 4

12

问题是 shiny-server 找不到您安装的软件包,因为它以另一个名为shiny. 这是安装时创建的用户shiny-server

解决此问题的最简单(也是最安全的恕我直言)方法是使用此用户帐户(闪亮)安装所需的软件包。这可以使用以下步骤来完成。

  1. shiny使用 为用户帐户设置密码sudo passwd shiny,现在输入并确认密码
  2. 使用以下命令切换到闪亮帐户:su - shiny
  3. 调用R使用R(不带 sudo)
  4. 安装所需的包,在这种情况下:install.packages("shiny")

请注意,如果您在同一台机器上安装了 rstudio-server,那么您可以使用该界面执行步骤 2-4。只需转到相同的域/IP 并使用 :8787 作为 rstudio-server 接口,而不是使用 :3838 作为闪亮服务器。

改编自我在这里的回答

于 2015-10-07T15:53:52.217 回答
5

我有类似的问题。阅读管理员指南后,这里可能是适合您的解决方案。

您遇到此错误是因为访问该应用程序的人没有安装该shiny软件包。如果你这样做less /etc/shiny-server/shiny-server.conf了,你可能会在前两行注意到以下内容:

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

为了解决此问题,您可以执行以下任一操作:

  • 切换到用户shiny并在那里安装所有软件包。例如,su shiny。但是,这将为所有用户复制您安装的库。
  • 一种干净的方法是始终shiny从具有所有包的另一个用户运行,方法是run_as/etc/shiny-server/shiny-server.conf. 在这种情况下,您可以将第二行更改为run_as your_username shiny;,以便它查找您的.libPaths(),然后是闪亮的.libPaths()。您也可以在此处添加多个用户。
于 2014-09-02T20:37:05.843 回答
0

我也有类似的烦恼。在我执行以下操作而不是软件包的单行安装之后工作:

sudo su
R

然后在R做:

install.packages('shiny', repos='http://cran.rstudio.com/')
library(shiny)
于 2014-05-22T10:05:14.200 回答
0

我也是 Ubuntu 的新手,遇到过类似的问题。在我的情况下,问题是 R 包安装在属于用户 'ubuntu' 的文件夹中。但是,它们必须对根可用。

我使用适当的命令将用户更改为“root”,然后从 R 运行 install.packages 函数

sudo -i
R

希望它能在你的路上对你有所帮助。至少你的问题不是唯一的。通过谷歌搜索,我发现了很多有用的提示。例如:

http://freigeist.devmag.net/r/773-deploying-shiny-server-on-amazon-some-troubleshoots-and-solutions.html

于 2014-07-21T21:14:08.620 回答