719016
719016

Reputation: 10431

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 ?

Upvotes: 15

Views: 34454

Answers (6)

Yihui Xie
Yihui Xie

Reputation: 30114

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.

Upvotes: 2

Andrii
Andrii

Reputation: 3043

I have the similar problem for "d3heatmap" package. It runs in RStudio (desktop and web) but gets an error in the web browser.

The only one workable solution was to install package from R command line under "root" account.

Upvotes: 1

Elie salem
Elie salem

Reputation: 11

To install the library in sudo.

1- su #to be in mode sudoer 2- tape the password 3- R 4- install.packages('shinydashboard')

Upvotes: 1

Bastiaan Quast
Bastiaan Quast

Reputation: 3545

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.

Upvotes: 22

Dirk is no longer here
Dirk is no longer here

Reputation: 368241

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.

Upvotes: 6

719016
719016

Reputation: 10431

This answer should work: https://stackoverflow.com/a/28834778/719016

I now realised it was a permissions issue when installing packages as R instead of sudo R.

I momentarily resolved it by installing as $USER and then pointing to the library with lib.loc:

library(shinydashboard, lib.loc="/home/avilella/R/x86_64-pc-linux-gnu-library/3.1")

Upvotes: 1

Related Questions