-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why not use R_LIBS_* variables instead of hard-coded container library? #10
Comments
Hi @nsheff, After trying to track down the issue I believe it's being caused upstream of the bioconductor_docker image, specifically in the https://github.com/rocker-org/rocker-versioned/blob/master/r-ver/latest.Dockerfile#L114 The line which you mentioned above doesn't seem to be causing the issue i'm seeing. I'll look into this further to try to understand the issue, but it is looking like this might be a rocker problem? |
Hi, I think I have the same problem. When I try to install a package using BiocManager it fails with the following error:
the result of .libPaths() in my case is:
do someone know how could I solve this problem? I tried to uninstall mgcv but but it tells me:
and if I try to install the new version it do it but in creates a copy of the package and it dosen't change the installation issue. |
Hi @nturaga did you ever track down if it's possible to solve this problem? |
the same problem |
One way to solve this is to just own those two library locations. I'm not sure if it's a problem with prevents usage? |
It maybe due to the upstream dependence rocker/rstudio, I have tried to make image begin with Docker Official Images r-base, but I'm not familiar with Dockerfile, I couldn't make a successful image. Finally, I have choosed to modify bioconductor_docker's Dockerfile by including the installation of dependencies library and add a line of code |
Related to Bioconductor/bioc_docker#93
In these lines, you prepend a within-container path to R_LIBS.
bioconductor_docker/Dockerfile
Lines 153 to 154 in 211bfff
I believe this is what is precluding me from using the
R_LIBS_USER
orR_LIBS_SITE
variables, because you are forcing the local container lib folder to have a higher priority. This makes these containers unusable for a use case where I want to use the container mount a local library using the traditional method.For example, I'm running this:
and I see:
The path I passed along via
R_LIBS_USER
is showing up as the lowest priority library. This causes some problems:/usr/local/lib/R/library
within the container.BiocManger::install
prompts, and installs into/home
only if I override:, but devtools does not:
Workaround
In a nutshell, whatI want to do this:
The container setup requires instead, this:
The problem with this is that I cannot use a variable (like
%v
) that will make this persist across different versions of R. This increases the manual overhead required when changing R versions. Furthermore, this means learning a new way to set libraries, where the old way would have worked fine (and in fact, even better). I think the environment variable way is superior because:I see no advantages to the forced host mount method. Perhaps I have missed something and there is some limitation preventing my proposal?
The text was updated successfully, but these errors were encountered: