可能的重叠:
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
答案 0 :(得分:6)
问题是,闪亮的服务器无法找到您安装的软件包,因为它将它们作为名为shiny
的其他用户运行。这是在安装shiny-server
时创建的用户。
解决此问题的最简单(也是最安全的恕我直言)方法是使用此用户帐户(闪亮)安装所需的软件包。这可以使用以下步骤完成。
shiny
为sudo passwd shiny
用户帐户设置密码,现在输入并确认密码su - shiny
R
(不使用sudo)R
install.packages("shiny")
请注意,如果您在同一台计算机上安装了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: