RStudio Shiny ERROR: there is no package called "shinydashboard"
I am trying to get http://rstudio.github.io/shinydashboard/ working on my Ubuntu 14.10 laptop.
I followed the installation instructions here:
http://rstudio.github.io/shinydashboard/get_started.html
Basic shiny
pages work. For example:
http://localhost:3838/sample-apps/hello/
But when I try one of the shinydashboard
examples, I get the error:
http://localhost:3838/sample-apps/shiny/
ERROR: there is no package called "shinydashboard"
If I run an R session in a terminal, I can load the shinydashboard
library, and I get a browser window with the dashboard if I copy+paste
this code in the R session:
library(shiny)
library(shinydashboard)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody()
)
server <- function(input, output) { }
shinyApp(ui, server)
It says:
Attaching package: 'shinydashboard'
The following object is masked from 'package:graphics':
box
>
> ui <- dashboardPage(
+ dashboardHeader(),
+ dashboardSidebar(),
+ dashboardBody()
+ )
>
> server <- function(input, output) { }
>
> shinyApp(ui, server)
Listening on http://127.0.0.1:7093
I tried to install the devel version of the shiny server, but that
also didn't help. Here is my sessionInfo()
:
> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] shinydashboard_0.2.3 shiny_0.11.1.9002
loaded via a namespace (and not attached):
[1] bitops_1.0-6 devtools_1.7.0 digest_0.6.8 htmltools_0.2.6
[5] httpuv_1.3.2 httr_0.6.1 mime_0.2 R6_2.0.1
[9] Rcpp_0.11.3 RCurl_1.95-4.5 stringr_0.6.2 tools_3.1.1
[13] xtable_1.7-4
EDITED:
More info:
ls -ld /usr/local/lib/R/site-library
drwxrwsr-x 11 root staff 4096 Mar 1 12:47 /usr/local/lib/R/site-library
Any ideas why I is it not working on http://localhost:3838 ? Which packaged need installing as root ?
The problem is that shiny-server cannot find the packages that you install because it runs them as a different user which is called shiny
. This user is created upon installation of shiny-server
The easiest (and safest IMHO) way to solve this is to just install the packages as the shiny user, using the following steps.
- Set a password for the user using
sudo passwd shiny
, now enter and confirm a password - Switch to the shiny account using:
su - shiny
- Call up
R
using$ R
(without sudo) - Install the required packages, in this case:
install.packages("shinydashboard")
Note that if you have rstudio-server installed on the same machine then you can perform steps 2-4 using that interface. Simply go the same domain/ip and use :8787 for the rstudio-server interface instead of :3838 for shiny-server.
On Ubuntu (and Debian) you have several choices.
Do
ls -ld /usr/local/lib/R/site-library
and note that the directory is owned by groupadm
. Make yourself part of that group, or alternatively change the group to one you are a member of. Now you can just write to that directory, so a plain oldinstall.packages()
will work.Use littler via
sudo apt-get install littler
and its handy script(s)install.r
andinstall2.r
. I use these a lot from the command-line on numerous machines at work and home. Then this is as simple asinstall.r shinydashboard
(once you copied or linkedinstall.r
somewhere into your$PATH
).If you insist, use a sledgehammer and start R as root. That is generally not a good idea due to permissions escalation.
If you use Shiny Server, all your R packages need to be installed with root privilege. See Section 1.3.4 of the Shiny Server admin guide for more details.