Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RStudio Shiny ERROR: there is no package called "shinydashboard"

Tags:

r

shiny

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 ?

like image 327
719016 Avatar asked Mar 01 '15 13:03

719016


3 Answers

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.

  1. Set a password for the user using sudo passwd shiny, now enter and confirm a password
  2. Switch to the shiny account using: su - shiny
  3. Call up R using $ R (without sudo)
  4. 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.

like image 129
Bastiaan Quast Avatar answered Nov 12 '22 20:11

Bastiaan Quast


On Ubuntu (and Debian) you have several choices.

  1. Do ls -ld /usr/local/lib/R/site-library and note that the directory is owned by group adm. 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 old install.packages() will work.

  2. Use littler via sudo apt-get install littler and its handy script(s) install.r and install2.r. I use these a lot from the command-line on numerous machines at work and home. Then this is as simple as install.r shinydashboard (once you copied or linked install.r somewhere into your $PATH).

  3. If you insist, use a sledgehammer and start R as root. That is generally not a good idea due to permissions escalation.

like image 6
Dirk Eddelbuettel Avatar answered Nov 12 '22 21:11

Dirk Eddelbuettel


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.

like image 2
Yihui Xie Avatar answered Nov 12 '22 19:11

Yihui Xie