5

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?

Soran
  • 391
  • 1
  • 4
  • 21

2 Answers2

4

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, ...

Dirk Eddelbuettel
  • 360,940
  • 56
  • 644
  • 725
  • Thanks, I can figure it out from there. I'll look again for a similar question - I had no luck on my first bunch of searches for it. – Soran Mar 28 '14 at 04:21
0

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

Community
  • 1
  • 1
Bastiaan Quast
  • 2,802
  • 1
  • 24
  • 50