pak
pak copied to clipboard
Improve error message
I had an issue with installing limma
: one of the dependencies could not be loaded because a required system library could not be found.
Unfortunately, pak
's error message doesn't tell me so:
> pak::pkg_install("limma")
→ Will install 2 packages.
→ All 2 packages (0 B) are cached.
+ limma 3.58.1 [bld][cmp]
+ statmod 1.5.0
ℹ No downloads are needed, 2 pkgs are cached
✔ Got statmod 1.5.0 (x86_64-pc-linux-gnu-rhel-8.8) (342.03 kB)
✔ Installed statmod 1.5.0 (1.8s)
ℹ Building limma 3.58.1
✖ Failed to build limma 3.58.1
Error:
! error in pak subprocess
Caused by error in `stop_task_build(state, worker)`:
! Failed to build source package limma.
Type .Last.error to see the more details.
> .Last.error
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! error in pak subprocess
Caused by error in `stop_task_build(state, worker)`:
! Failed to build source package limma.
---
Backtrace:
1. pak::pkg_install("limma")
2. pak:::remote(function(...) get("pkg_install_do_plan", asNamespace("pak"))(...), …
3. err$throw(res$error)
---
Subprocess backtrace:
1. base::withCallingHandlers(cli_message = function(msg) { …
2. get("pkg_install_do_plan", asNamespace("pak"))(...)
3. proposal$install()
4. pkgdepends::install_package_plan(plan, lib = private$library, num_workers = nw, …
5. base::withCallingHandlers({ …
6. pkgdepends:::handle_events(state, events)
7. pkgdepends:::handle_event(state, i)
8. pkgdepends:::stop_task(state, worker)
9. pkgdepends:::stop_task_build(state, worker)
10. base::throw(pkg_error("Failed to build source package {.pkg {pkg}}.", …
11. | base::signalCondition(cond)
12. global (function (e) …
Compared to BiocManager::install
which points this out immediately:
> BiocManager::install("limma")
'getOption("repos")' replaces Bioconductor standard repositories, see
'help("repositories", package = "BiocManager")' for details.
Replacement repositories:
CRAN: https://packagemanager.rstudio.com/all/__linux__/centos7/latest
Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.2 (2023-10-31)
Installing package(s) 'BiocVersion', 'limma'
trying URL 'https://bioconductor.org/packages/3.18/bioc/src/contrib/BiocVersion_3.18.1.tar.gz'
Content type 'application/x-gzip' length 973 bytes
==================================================
downloaded 973 bytes
trying URL 'https://bioconductor.org/packages/3.18/bioc/src/contrib/limma_3.58.1.tar.gz'
Content type 'application/x-gzip' length 2804950 bytes (2.7 MB)
==================================================
downloaded 2.7 MB
* installing *source* package ‘BiocVersion’ ...
** using staged installation
** help
*** installing help indices
converting help for package ‘BiocVersion’
finding HTML links ... done
BiocVersion-pkg html
** building package indices
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (BiocVersion)
* installing *source* package ‘limma’ ...
** using staged installation
** libs
using C compiler: ‘gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-20)’
gcc -I"/opt/R/4.3.2/lib/R/include" -DNDEBUG -I/usr/local/include -fpic -g -O2 -c init.c -o init.o
gcc -I"/opt/R/4.3.2/lib/R/include" -DNDEBUG -I/usr/local/include -fpic -g -O2 -c normexp.c -o normexp.o
gcc -I"/opt/R/4.3.2/lib/R/include" -DNDEBUG -I/usr/local/include -fpic -g -O2 -c weighted_lowess.c -o weighted_lowess.o
gcc -shared -L/opt/R/4.3.2/lib/R/lib -L/usr/local/lib -o limma.so init.o normexp.o weighted_lowess.o -L/opt/R/4.3.2/lib/R/lib -lR
installing to /home/jenkins/R/4.3.2/library/00LOCK-limma/00new/limma/libs
** R
** inst
** byte-compile and prepare package for lazy loading
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/home/jenkins/R/4.3.2/library/statmod/libs/statmod.so':
libgfortran.so.3: cannot open shared object file: No such file or directory
Calls: <Anonymous> ... asNamespace -> loadNamespace -> library.dynam -> dyn.load
Execution halted
ERROR: lazy loading failed for package ‘limma’
* removing ‘/home/jenkins/R/4.3.2/library/limma’
The downloaded source packages are in
‘/tmp/RtmpS30mij/downloaded_packages’
Installation paths not writeable, unable to update packages
path: /opt/R/4.3.2/lib/R/library
packages:
cluster, foreign, lattice, Matrix, mgcv, nlme, rpart
Warning message:
In install.packages(...) :
installation of package ‘limma’ had non-zero exit status
Sitrep
> pak::pak_sitrep()
* pak version:
- 0.7.1
* Version information:
- pak platform: x86_64-pc-linux-musl (current: x86_64-pc-linux-gnu, compatible)
- pak repository: - (local install?)
* Optional packages missing:
- pillar
* Library path:
- /home/jenkins/R/4.3.2/library
- /opt/R/4.3.2/lib/R/library
* pak is installed at /home/jenkins/R/4.3.2/library/pak.
* Dependency versions:
- callr 3.7.3
- cli 3.6.1.9000
- curl 5.2.0
- desc 1.4.3
- filelock 1.0.2
- jsonlite 1.8.8
- lpSolve 5.6.20
- pkgbuild 1.4.3
- pkgcache 2.2.1
- pkgdepends 0.7.0.9000
- pkgsearch 3.1.3
- processx 3.8.3
- ps 1.7.5
- R6 2.5.1
- zip 2.3.0
* Dependencies can be loaded