When installing densvis
on a Singularity container, it seems to ignore the g++ that comes with the container, and instead is finding the site-wide g++ even though it doesn't have access to that version of g++, nor even access to the directory structure that contains the site-wide g++ (g++ is installed as a module on this linux box, and I haven't loaded that module prior to starting the singularity container, so technically it shouldn't be able to find it at all).
> library(BiocManager)
> install("densvis")
<snip>
* installing *source* package ‘densvis’ ...
** using non-staged installation via StagedInstall field
** libs
/share/apps/GCC/gcc-10.3.0/bin/g++ -std=gnu++14 -I"/usr/local/lib/R/include" -DNDEBUG -I'/usr/local/lib/R/site-library/Rcpp/include' -I/usr/local/include -fopenmp -fpic -O3 -march=native -mtune=native -fPIC -c RcppExports.cpp -o RcppExports.o
/bin/bash: /share/apps/GCC/gcc-10.3.0/bin/g++: No such file or directory
make: *** [/usr/local/lib/R/etc/Makeconf:177: RcppExports.o] Error 127
ERROR: compilation failed for package ‘densvis’
* removing ‘/usr/local/lib/R/host-site-library/densvis’
## However
> system("which g++")
/usr/bin/g++
> file.exists("/share/")
[1] FALSE
It appears to use basilisk::configureBasiliskEnv
to get some environment variables, but it's not clear to me if that is the issue or not.
got the same issue, have you solved it?
The question is not reproducible as it is unclear which base image you're talking about. I can install as above from source in the latest rocker/rstudio bootstrapped from Docker. Do you install directly from a Singularity file or how was the image even built?
I don't currently have access to a HPC with a module system so it'll be a while before I can debug this. Does Aaron Lun have any insights from the basilisk side of things?