Question

For my system: Ubuntu 12.04 and R 3.03, whenever I install a custom package in R via

>install.packages()

the package is installed by default to

/home/USER/R/x86_64-pc-linus-gnu-library/3.0/ 

as opposed to system-wide in

/usr/local/lib/R/site-library/

which is needed for shiny-server to work with that package.

My temporary solution is to copy the packages to the correct folder after the fact.

Question: How can I set the default install path from the start to avoid this problem?

Was it helpful?

Solution

Yes -- I consider this to be a misfeature and disable my per-user directory.

Moreover, I mostly use a script install.r (of which a version is an example in the littler package you can install as part of Ubuntu) which simple explicitly set the /usr/local/lib/R/site-library directory as the default. With a patch we got into R 3.0.2 or 3.0.3, normal user can write into the directory and will now create group-writeable directories so other users can update and overwrite -- just make everybody a member of the same group, say staff or admin. And then you don't even need sudo or root.

I have essentially answered this same question a few times here over the years (minus the shiny angle, which is not really relevant) so feel free to search for the other for more details, examples, ...

OTHER TIPS

I would propose a different approach.

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 of your choosing.
  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.

Adapted from my answer here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top