[setup-r-dependencies] Supports arm ubuntu
Closed this issue · 6 comments
I tried using the ubuntu-arm runner that is now available in the public repositories1, but could not install the package using setup-r-dependencies.
Error:
! error in pak subprocess
Caused by error in `verify_extracted_package(filename, pkg_cache)`:
!
'/tmp/RtmpCN6Y7T/file2e4b50db9905/src/contrib/aarch64-unknown-linux-gnu-ubuntu-22.04/4.4/base64enc_0.1-3.tar.gz'
is not a valid binary, it is missing base64enc/Meta/package.rds.
Footnotes
You need to show what you did, because I don't really see why setup-r-dependencies wouldn't support arm.
Thanks for the quick reply. I have confirmed with this change.
PRQL/prqlc-r@435dc1e
The log of the run can be found here.
https://github.com/PRQL/prqlc-r/actions/runs/12852271028/job/35834018237?pr=333
Details
Run actions/cache@v4
with:
path: /home/runner/work/_temp/Library/*
renv/library
!/home/runner/work/_temp/Library/pak
!/home/runner/work/_temp/Library/_cache
key: Ubuntu 22.04.5 LTS-R version 4.4.2 (2024-10-31)-1-6050dcffb7f69c0b5c497e0671131c393ac96a7676768ef2e3455f19c940c335
restore-keys: Ubuntu 22.04.5 LTS-R version 4.4.2 (2024-10-31)-1-
enableCrossOsArchive: false
fail-on-cache-miss: false
lookup-only: false
save-always: false
env:
LIB_NAME: libprqlr
LIB_VERSION: 0.13.1
R_INCLUDE_DIR:
CACHE_ON_FAILURE: false
CARGO_INCREMENTAL: 0
R_LIBS_USER: /home/runner/work/_temp/Library
TZ: UTC
_R_CHECK_SYSTEM_CLOCK_: FALSE
NOT_CRAN: true
RSPM: https://packagemanager.posit.co/cran/__linux__/jammy/latest
RENV_CONFIG_REPOS_OVERRIDE: https://packagemanager.posit.co/cran/__linux__/jammy/latest
R_LIB_FOR_PAK: /opt/R/4.4.2/lib/R/site-library
Cache Size: ~42 MB (44287394 B)
/usr/bin/tar -xf /home/runner/work/_temp/7f967e2b-a7d7-4043-a3f7-66f9ffa3161e/cache.tzst -P -C /home/runner/work/prqlc-r/prqlc-r --use-compress-program unzstd
Cache restored successfully
Cache restored from key: Ubuntu 22.04.5 LTS-R version 4.4.2 (2024-10-31)-1-64b3c12f59dc6057e591c7d0742e7d3501e305235f613b8abe62b822015d8c79
Run # Install/Update packages
# Install/Update packages
cat("::group::Install/update packages\n")
Sys.setenv("PKGCACHE_HTTP_VERSION" = "2")
library(pak, lib.loc = Sys.getenv("R_LIB_FOR_PAK"))
pak::lockfile_install(".github/pkg.lock")
## Clean up lock file
unlink(".github/pkg.lock")
cat("::endgroup::\n")
shell: /usr/local/bin/Rscript {0}
env:
LIB_NAME: libprqlr
LIB_VERSION: 0.13.1
R_INCLUDE_DIR:
CACHE_ON_FAILURE: false
CARGO_INCREMENTAL: 0
R_LIBS_USER: /home/runner/work/_temp/Library
TZ: UTC
_R_CHECK_SYSTEM_CLOCK_: FALSE
NOT_CRAN: true
RSPM: https://packagemanager.posit.co/cran/__linux__/jammy/latest
RENV_CONFIG_REPOS_OVERRIDE: https://packagemanager.posit.co/cran/__linux__/jammy/latest
R_LIB_FOR_PAK: /opt/R/4.4.2/lib/R/site-library
Install/update packages
ℹ Installing lockfile '.github/pkg.lock'
→ Will install 36 packages.
→ Will download 36 packages with unknown size.
+ base64enc 0.1-3 [dl]
+ bit 4.5.0.1 [dl]
+ bit64 4.6.0-1 [dl]
+ brio 1.1.5 [dl]
+ cachem 1.1.0 [dl]
+ chron 2.3-62 [dl]
+ cli 3.6.3 [dl]
+ diffobj 0.3.5 [dl]
+ digest 0.6.37 [dl]
+ dplyr 1.1.4 [dl]
+ fansi 1.0.6 [dl]
+ fastmap 1.2.0 [dl]
+ fs 1.6.5 [dl] + make
+ glue 1.8.0 [dl]
+ htmltools 0.5.8.1 [dl]
+ jsonlite 1.8.9 [dl]
+ lubridate 1.9.4 [dl]
+ magrittr 2.0.3 [dl]
+ mime 0.12 [dl]
+ processx 3.8.5 [dl]
+ ps 1.8.1 [dl]
+ purrr 1.0.2 [dl]
+ rappdirs 0.3.3 [dl]
+ rlang 1.1.5 [dl]
+ RSQLite 2.3.9 [dl]
+ sass 0.4.9 [dl] + make
+ sessioninfo 1.2.2 [dl]
+ stringi 1.8.4 [dl] + libicu-dev
+ testthat 3.2.3 [dl]
+ tibble 3.2.1 [dl]
+ timechange 0.3.0 [dl]
+ utf8 1.2.4 [dl]
+ vctrs 0.6.5 [dl]
+ xfun 0.50 [dl]
+ yaml 2.3.10 [dl]
→ Will install 5 system packages:
* cargo - prqlr-deps
* libicu-dev - stringi
* make - fs, sass
* pandoc - knitr, rmarkdown
* rustc - prqlr-deps
ℹ Getting 35 pkgs with unknown sizes
✔ Got base64enc 0.1-3 (aarch64-unknown-linux-gnu-ubuntu-22.04) (7.83 kB)
✔ Got brio 1.1.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (13.39 kB)
✔ Got mime 0.12 (aarch64-unknown-linux-gnu-ubuntu-22.04) (12.60 kB)
✔ Got bit64 4.6.0-1 (aarch64-unknown-linux-gnu-ubuntu-22.04) (143.08 kB)
✔ Got timechange 0.3.0 (aarch64-unknown-linux-gnu-ubuntu-22.04) (103.72 kB)
✔ Got jsonlite 1.8.9 (aarch64-unknown-linux-gnu-ubuntu-22.04) (1.05 MB)
✔ Got bit 4.5.0.1 (aarch64-unknown-linux-gnu-ubuntu-22.04) (858.94 kB)
✔ Got sass 0.4.9 (aarch64-unknown-linux-gnu-ubuntu-22.04) (3.03 MB)
✔ Got htmltools 0.5.8.1 (aarch64-unknown-linux-gnu-ubuntu-22.04) (135.44 kB)
✔ Got cachem 1.1.0 (aarch64-unknown-linux-gnu-ubuntu-22.04) (26.84 kB)
✔ Got digest 0.6.37 (aarch64-unknown-linux-gnu-ubuntu-22.04) (231.68 kB)
✔ Got rappdirs 0.3.3 (aarch64-unknown-linux-gnu-ubuntu-22.04) (12.20 kB)
✔ Got sessioninfo 1.2.2 (aarch64-unknown-linux-gnu-ubuntu-22.04) (172.10 kB)
✔ Got processx 3.8.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (165.43 kB)
✔ Got chron 2.3-62 (aarch64-unknown-linux-gnu-ubuntu-22.04) (38.35 kB)
✔ Got utf8 1.2.4 (aarch64-unknown-linux-gnu-ubuntu-22.04) (239.71 kB)
✔ Got ps 1.8.1 (aarch64-unknown-linux-gnu-ubuntu-22.04) (165.53 kB)
✔ Got cli 3.6.3 (aarch64-unknown-linux-gnu-ubuntu-22.04) (566.74 kB)
✔ Got testthat 3.2.3 (aarch64-unknown-linux-gnu-ubuntu-22.04) (735.65 kB)
✔ Got rlang 1.1.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (764.35 kB)
✔ Got fastmap 1.2.0 (aarch64-unknown-linux-gnu-ubuntu-22.04) (47.09 kB)
✔ Got fs 1.6.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (1.21 MB)
✔ Got purrr 1.0.2 (aarch64-unknown-linux-gnu-ubuntu-22.04) (218.46 kB)
✔ Got tibble 3.2.1 (aarch64-unknown-linux-gnu-ubuntu-22.04) (565.72 kB)
✔ Got lubridate 1.9.4 (aarch64-unknown-linux-gnu-ubuntu-22.04) (429.15 kB)
✔ Got magrittr 2.0.3 (aarch64-unknown-linux-gnu-ubuntu-22.04) (267.20 kB)
✔ Got glue 1.8.0 (aarch64-unknown-linux-gnu-ubuntu-22.04) (126.54 kB)
✔ Got xfun 0.50 (aarch64-unknown-linux-gnu-ubuntu-22.04) (174.53 kB)
✔ Got diffobj 0.3.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (477.31 kB)
✔ Got yaml 2.3.10 (aarch64-unknown-linux-gnu-ubuntu-22.04) (94.98 kB)
✔ Got vctrs 0.6.5 (aarch64-unknown-linux-gnu-ubuntu-22.04) (967.95 kB)
✔ Got fansi 1.0.6 (aarch64-unknown-linux-gnu-ubuntu-22.04) (482.60 kB)
✔ Got dplyr 1.1.4 (aarch64-unknown-linux-gnu-ubuntu-22.04) (1.21 MB)
✔ Got RSQLite 2.3.9 (aarch64-unknown-linux-gnu-ubuntu-22.04) (4.29 MB)
✔ Got stringi 1.8.4 (aarch64-unknown-linux-gnu-ubuntu-22.04) (11.92 MB)
ℹ Installing system requirements
ℹ Executing `sudo sh -c apt-get -y update`
Hit:1 https://packages.microsoft.com/repos/azure-cli jammy InRelease
Hit:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
Hit:4 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease
Hit:5 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease
Hit:6 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease
Reading package lists...
ℹ Executing `sudo sh -c apt-get -y install rustc cargo make pandoc libicu-dev`
Reading package lists...
Building dependency tree...
Reading state information...
libicu-dev is already the newest version (70.1-2).
libicu-dev set to manually installed.
make is already the newest version (4.3-4.1build1).
The following additional packages will be installed:
libcmark-gfm-extensions0.29.0.gfm.3 libcmark-gfm0.29.0.gfm.3
libstd-rust-1.75 libstd-rust-dev pandoc-data
Suggested packages:
cargo-doc texlive-latex-recommended texlive-xetex texlive-luatex
pandoc-citeproc texlive-latex-extra context wkhtmltopdf librsvg2-bin groff
ghc nodejs python r-base-core libjs-mathjax libjs-katex
citation-style-language-styles llvm-17 lld-17 clang-17
The following NEW packages will be installed:
cargo libcmark-gfm-extensions0.29.0.gfm.3 libcmark-gfm0.29.0.gfm.3
libstd-rust-1.75 libstd-rust-dev pandoc pandoc-data rustc
0 upgraded, 8 newly installed, 0 to remove and 102 not upgraded.
Need to get 117 MB of archives.
After this operation, 526 MB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libcmark-gfm0.29.0.gfm.3 arm64 0.29.0.gfm.3-3 [112 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 libcmark-gfm-extensions0.29.0.gfm.3 arm64 0.29.0.gfm.3-3 [24.6 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 libstd-rust-1.75 arm64 1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04 [44.0 MB]
Get:4 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 pandoc-data all 2.9.2.1-3ubuntu2 [81.8 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports jammy/universe arm64 pandoc arm64 2.9.2.1-3ubuntu2 [22.3 MB]
Get:6 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 libstd-rust-dev arm64 1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04 [41.1 MB]
Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main arm64 rustc arm64 1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04 [3233 kB]
Get:8 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe arm64 cargo arm64 1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04 [6307 kB]
Fetched 117 MB in 6s (19.7 MB/s)
Selecting previously unselected package libcmark-gfm0.29.0.gfm.3:arm64.
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 254465 files and directories currently installed.)
Preparing to unpack .../0-libcmark-gfm0.29.0.gfm.3_0.29.0.gfm.3-3_arm64.deb ...
Unpacking libcmark-gfm0.29.0.gfm.3:arm64 (0.29.0.gfm.3-3) ...
Selecting previously unselected package libcmark-gfm-extensions0.29.0.gfm.3:arm64.
Preparing to unpack .../1-libcmark-gfm-extensions0.29.0.gfm.3_0.29.0.gfm.3-3_arm64.deb ...
Unpacking libcmark-gfm-extensions0.29.0.gfm.3:arm64 (0.29.0.gfm.3-3) ...
Selecting previously unselected package libstd-rust-1.75:arm64.
Preparing to unpack .../2-libstd-rust-1.75_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_arm64.deb ...
Unpacking libstd-rust-1.75:arm64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package pandoc-data.
Preparing to unpack .../3-pandoc-data_2.9.2.1-3ubuntu2_all.deb ...
Unpacking pandoc-data (2.9.2.1-3ubuntu2) ...
Selecting previously unselected package pandoc.
Preparing to unpack .../4-pandoc_2.9.2.1-3ubuntu2_arm64.deb ...
Unpacking pandoc (2.9.2.1-3ubuntu2) ...
Selecting previously unselected package libstd-rust-dev:arm64.
Preparing to unpack .../5-libstd-rust-dev_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_arm64.deb ...
Unpacking libstd-rust-dev:arm64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package rustc.
Preparing to unpack .../6-rustc_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_arm64.deb ...
Unpacking rustc (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Selecting previously unselected package cargo.
Preparing to unpack .../7-cargo_1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04_arm64.deb ...
Unpacking cargo (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libstd-rust-1.75:arm64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libstd-rust-dev:arm64 (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libcmark-gfm0.29.0.gfm.3:arm64 (0.29.0.gfm.3-3) ...
Setting up rustc (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up libcmark-gfm-extensions0.29.0.gfm.3:arm64 (0.29.0.gfm.3-3) ...
Setting up pandoc-data (2.9.2.1-3ubuntu2) ...
Setting up cargo (1.75.0+dfsg0ubuntu1~bpo0-0ubuntu0.22.04) ...
Setting up pandoc (2.9.2.1-3ubuntu2) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
NEEDRESTART-VER: 3.5
NEEDRESTART-KCUR: 6.5.0-1025-azure
NEEDRESTART-KEXP: 6.5.0-1025-azure
NEEDRESTART-KSTA: 1
Error:
! error in pak subprocess
Caused by error in `verify_extracted_package(filename, pkg_cache)`:
!
'/tmp/RtmpCN6Y7T/file2e4b50db9905/src/contrib/aarch64-unknown-linux-gnu-ubuntu-22.04/4.4/base64enc_0.1-3.tar.gz'
is not a valid binary, it is missing base64enc/Meta/package.rds.
---
Backtrace:
1. pak::lockfile_install(".github/pkg.lock")
2. pak:::remote(function(...) { …
3. err$throw(res$error)
---
Subprocess backtrace:
1. base::withCallingHandlers(cli_message = function(msg) { …
2. get("lockfile_install_internal", asNamespace("pak"))(...)
3. plan$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. proc$get_result()
9. processx:::process_get_result(self, private)
10. private$post_process()
11. pkgdepends:::install_extracted_binary(filename, lib_cache, pkg_cache, lib, …
12. pkgdepends:::verify_extracted_package(filename, pkg_cache)
13. base::throw(pkg_error("{.path {filename}} is not a valid binary, it is missing {…
14. | base::signalCondition(cond)
15. global (function (e) …
Execution halted
Error: Process completed with exit code 1.
This change does not seem to have much to do with arm64.
As for the workflow run failure, RSPM does not have arm64 packages, so try with
use-public-rspm: false
Seems to work just fine:
r-lib/ps@d35c92c
https://github.com/r-lib/ps/actions/runs/12852749792/job/35835106967
Thanks, confirmed with use-public-rspm: false.
(I've known about this behavior for years, but I'm surprised that it still installs binaries for amd64 even though the header contains platform information)
This issue has been automatically locked. If you believe you have found a related problem, please file a new issue and include a link to this issue