R Shiny Server安装包

时间:2014-05-22 09:56:46

标签: r install packages shiny shiny-server

可能的重叠:
Packages missing in shiny-server
R shiny / shiny-server - issue with finding packages
R - How to set the path of install.packages() for shiny server ? - 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"

非常感谢任何帮助


SessionInfo:

> .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 个答案:

答案 0 :(得分:6)

问题是,闪亮的服务器无法找到您安装的软件包,因为它将它们作为名为shiny的其他用户运行。这是在安装shiny-server时创建的用户。

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

  1. 使用shinysudo passwd shiny用户帐户设置密码,现在输入并确认密码
  2. 使用:su - shiny
  3. 切换到闪亮帐户
  4. 使用R(不使用sudo)
  5. 来调用R
  6. 安装所需的软件包,在本例中为install.packages("shiny")
  7. 请注意,如果您在同一台计算机上安装了rstudio-server,则可以使用该界面执行步骤2-4。只需使用相同的域/ ip并使用:8787用于rstudio-server接口,而不是:3838用于闪亮服务器。

    改编自我的回答here

答案 1 :(得分:3)

我有类似的问题。阅读the admin guide后,这可能是您的解决方案。

您遇到此错误,因为访问该应用的用户没有安装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()。您也可以在此处添加多个用户。

答案 2 :(得分:0)

我有类似的麻烦。在我执行以下操作而不是包的一行安装后工作:

sudo su
R

然后在R do:

install.packages('shiny', repos='http://cran.rstudio.com/')
library(shiny)

答案 3 :(得分:0)

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

我使用适当的命令将用户更改为“root”,然后从R

运行install.packages函数
sudo -i
R

希望它会帮助你。至少你的问题不是唯一的。我只是在谷歌上搜索了很多有用的提示。 E.g:

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