R - How to set the path of install.packages() for shiny server ? - Ubuntu

家住魔仙堡 提交于 2019-12-18 16:56:10

问题


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?


回答1:


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




回答2:


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



来源:https://stackoverflow.com/questions/22703595/r-how-to-set-the-path-of-install-packages-for-shiny-server-ubuntu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!