[R-sig-Debian] Installing package fails at "testing if installed package can be loaded from temporary location"
Dirk Eddelbuettel
edd @end|ng |rom deb|@n@org
Thu Oct 8 21:37:55 CEST 2020
Hi Sam,
Thanks for bringing this here. It is the right place.
And for what it is worth I also use 20.04, and update RcppArmadillo
frequently (currently working on a pre-release)
On 8 October 2020 at 14:37, Sam H wrote:
| Hi,
|
| I can not install packages from source which links to RcppArmadillo on
| Ubuntu 20.04 (after upgrading from 18.04). The following problem occurs:
|
| ** testing if installed package can be loaded from temporary location
| Error: package or namespace load failed for 'myPackage' in
| dyn.load(file, DLLpath = DLLpath, ...):
| unable to load shared object
| '/usr/local/lib/R/site-library/00LOCK-my_package/00new/myPackage/libs/myPackage.so':
| /usr/local/lib/R/site-library/00LOCK-my_package/00new/myPackge/libs/myPackage.so:
| undefined symbol: dgesvx_
Ok, this could be two things. Are you using the R package for Ubuntu from
CRAN, or directly from the Rutter PPA ? All this works best with R being
compiled using shared libraries and external LAPACK/BLAS. So in R itself,
when you type sessionInfo() you should see two lines like this:
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
Second, for any locally compiled package, `ldd` on that .so file should
resolve LAPACK and BLAS:
edd using rob:~$ ldd /usr/local/lib/R/site-library/RcppZiggurat/libs/RcppZiggurat.so | grep "blas\|lapack"
libgslcblas.so.0 => /usr/lib/x86_64-linux-gnu/libgslcblas.so.0 (0x00007effdd3ab000)
libblas.so.3 => /usr/lib/x86_64-linux-gnu/libblas.so.3 (0x00007effdb9ac000)
edd using rob:~$
| Error: loading failed
| Execution halted
| ERROR: loading failed
|
| This dgesvx_ looked to me like a LAPACK problem (
| https://www.netlib.org/lapack/explore-html/d7/d3b/group__double_g_esolve_ga9d90ccf6e340cacd08b7bbbb502ceb21.html#ga9d90ccf6e340cacd08b7bbbb502ceb21
| ).
|
| I was playing with different BLAS/LAPACK versions on my system and
| researching this for a couple of days now but without success.
|
| I was first looking at which LAPACK and BLAS R is "using"
|
| user using user:~$ ps aux | grep exec/R
| user+ 11663 1.9 1.7 1030952 415240 pts/0 Sl+ 06:33 0:13
| /usr/lib/R/bin/exec/R --vanilla --quiet
| user+ 13836 2.5 0.2 441664 52024 pts/1 Sl+ 06:44 0:00
| /usr/lib/R/bin/exec/R
| user+ 13932 0.0 0.0 8900 660 pts/2 S+ 06:45 0:00 grep exec/R
| user using user:~$ lsof -p 13836 | grep 'blas\|lapack'
| R 13836 user mem REG 8,1 33562376 3961750
| /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
Same as mine above, found via a more hardcore way :)
| R 13836 user mem REG 8,1 27200552 3961749
| /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| user using user:~$ ls -l /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| -rw-r--r-- 1 root root 27200552 Jun 2 06:55
| /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| user using user:~$ ls -l /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
| -rw-r--r-- 1 root root 33562376 Jun 2 06:55
| /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
|
| And then tried different versions:
|
| user using user:~$ sudo update-alternatives --config libblas.so.3-x86_64-linux-gnu
| There are 4 choices for the alternative libblas.so.3-x86_64-linux-gnu
| (providing /usr/lib/x86_64-linux-gnu/libblas.so.3).
|
| Selection Path
| Priority Status
| ------------------------------------------------------------
| * 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| 100 auto mode
| 1 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35
| manual mode
| 2 /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 10
| manual mode
| 3 /usr/lib/x86_64-linux-gnu/openblas-openmp/libblas.so.3 95
| manual mode
| 4 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| 100 manual mode
Also fine.
| Press <enter> to keep the current choice[*], or type selection number: 3
| update-alternatives: using
| /usr/lib/x86_64-linux-gnu/openblas-openmp/libblas.so.3 to provide
| /usr/lib/x86_64-linux-gnu/libblas.so.3 (libblas.so.3-x86_64-linux-gnu) in
| manual mode
| user using user:~$ sudo update-alternatives --config
| liblapack.so.3-x86_64-linux-gnu
| There are 4 choices for the alternative liblapack.so.3-x86_64-linux-gnu
| (providing /usr/lib/x86_64-linux-gnu/liblapack.so.3).
|
| Selection Path
| Priority Status
| ------------------------------------------------------------
| * 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
| 100 auto mode
| 1 /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3
| 35 manual mode
| 2 /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3
| 10 manual mode
| 3 /usr/lib/x86_64-linux-gnu/openblas-openmp/liblapack.so.3
| 95 manual mode
| 4 /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
| 100 manual mode
|
| Press <enter> to keep the current choice[*], or type selection number: 3
| update-alternatives: using
| /usr/lib/x86_64-linux-gnu/openblas-openmp/liblapack.so.3 to provide
| /usr/lib/x86_64-linux-gnu/liblapack.so.3 (liblapack.so.3-x86_64-linux-gnu)
| in manual mode
| user using user:~$ sudo update-alternatives --config libblas.so.3-x86_64-linux-gnu
| There are 4 choices for the alternative libblas.so.3-x86_64-linux-gnu
| (providing /usr/lib/x86_64-linux-gnu/libblas.so.3).
|
| Selection Path
| Priority Status
| ------------------------------------------------------------
| 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| 100 auto mode
| 1 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35
| manual mode
| 2 /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 10
| manual mode
| * 3 /usr/lib/x86_64-linux-gnu/openblas-openmp/libblas.so.3 95
| manual mode
| 4 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
| 100 manual mode
|
| Press <enter> to keep the current choice[*], or type selection number: 2
| update-alternatives: using /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 to
| provide /usr/lib/x86_64-linux-gnu/libblas.so.3
| (libblas.so.3-x86_64-linux-gnu) in manual mode
| user using user:~$ sudo update-alternatives --config
| liblapack.so.3-x86_64-linux-gnu
| There are 4 choices for the alternative liblapack.so.3-x86_64-linux-gnu
| (providing /usr/lib/x86_64-linux-gnu/liblapack.so.3).
|
| Selection Path
| Priority Status
| ------------------------------------------------------------
| 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
| 100 auto mode
| 1 /usr/lib/x86_64-linux-gnu/atlas/liblapack.so.3
| 35 manual mode
| 2 /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3
| 10 manual mode
| * 3 /usr/lib/x86_64-linux-gnu/openblas-openmp/liblapack.so.3
| 95 manual mode
| 4 /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
| 100 manual mode
|
| Press <enter> to keep the current choice[*], or type selection number: 2
| update-alternatives: using /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3
| to provide /usr/lib/x86_64-linux-gnu/liblapack.so.3
| (liblapack.so.3-x86_64-linux-gnu) in manual mode
| I have no idea what could be wrong here... Thanks in advance for hints and
| help on what to do here.
It is possible to 'bust' one's system by playing with update-alternatives. I
usually don't touch it, or make triple-sure I am doing it right.
I would check whether linear algebra currently works for you. One check:
$ Rscript -e 'library(RcppArmadillo); example("fastLm")
Dirk
| Best regards,
| Sam
|
| [[alternative HTML version deleted]]
|
| _______________________________________________
| R-SIG-Debian mailing list
| R-SIG-Debian using r-project.org
| https://stat.ethz.ch/mailman/listinfo/r-sig-debian
--
https://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
More information about the R-SIG-Debian
mailing list