Skip to content

critical: unable to install Pak on at least Debian bookworm and Ubuntu noble - Error: package or namespace load failed for 'cli' in dyn.load(...): unable to load shared object ... pak/library/cli/libs/cli.so ... undefined symbol: R_getVarEx #860

@N0rbert

Description

@N0rbert

Steps to reproduce: try to install Pak package on fresh Debian or Ubuntu Docker container

docker run -it --rm debian:bookworm bash -c "apt-get update && apt-get dist-upgrade -y && apt-get install -y r-base-dev build-essential && apt-cache policy r-base-dev && R --version && R -e \"install.packages('pak', repos='http://cran.r-project.org/')\""

or

docker run -it --rm ubuntu:noble bash -c "apt-get update && apt-get dist-upgrade -y && apt-get install -y r-base-dev build-essential && apt-cache policy r-base-dev && R --version && R -e \"install.packages('pak', repos='http://cran.r-project.org/')\""

Note: Ubuntu Jammy is also affected.

Expected result: Pak is installed and can load its dynamic libraries or whatever it needs.

Actual result for Debian bookworm:

...
r-base-dev:
  Installed: 4.2.2.20221110-2
  Candidate: 4.2.2.20221110-2
  Version table:
 *** 4.2.2.20221110-2 500
        500 http://deb.debian.org/debian bookworm/main amd64 Packages
        500 http://deb.debian.org/debian bookworm/main i386 Packages
        100 /var/lib/dpkg/status
...
R version 4.2.2 Patched (2022-11-10 r83330) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.


R version 4.2.2 Patched (2022-11-10 r83330) -- "Innocent and Trusting"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> install.packages('pak', repos='http://cran.r-project.org/')
Installing package into '/usr/local/lib/R/site-library'
(as 'lib' is unspecified)
trying URL 'http://cran.r-project.org/src/contrib/Transit/pak_0.9.3-1.tar.gz'
Content type 'application/x-gzip' length 3172341 bytes (3.0 MB)
==================================================
downloaded 3.0 MB

* installing *source* package 'pak' ...
** using staged installation
** Running ./configure
** libs
Current platform: x86_64-pc-linux-gnu 
Build platform:   
Target platform:   

Compiling R6 

Compiling cli 
...
make[1]: Leaving directory '/tmp/Rtmpni76Sf/R.INSTALL1fb640fd4b79/pak/src/library/cli/src'
installing to /usr/local/lib/R/site-library/00LOCK-pak/00new/pak/library/cli/libs
Error: package or namespace load failed for 'cli' in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/local/lib/R/site-library/00LOCK-pak/00new/pak/library/cli/libs/cli.so':
  /usr/local/lib/R/site-library/00LOCK-pak/00new/pak/library/cli/libs/cli.so: undefined symbol: R_getVarEx
Error: loading failed
Execution halted
ERROR: loading failed
Error in install_one(pkg, lib = lib) : FAILED
Calls: install_embedded_main -> install_all -> install_one
Execution halted
installing via 'install.libs.R' to /usr/local/lib/R/site-library/00LOCK-pak/00new/pak
Error in eval(ei, envir) : Compilation failed.
* removing '/usr/local/lib/R/site-library/pak'

The downloaded source packages are in
	'/tmp/Rtmp1pQJn1/downloaded_packages'
Warning message:
In install.packages("pak", repos = "http://cran.r-project.org/") :
  installation of package 'pak' had non-zero exit status
> 

You should respect the users of stable and supported Linux distros with LTS support!

Also please note that Pak is now a dependency of devtools since 2.5.0 release, so you should be really careful with R_getVarEx and other modern symbols.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions