Skip to content

pak unable to install Linux binary packages from PPM's new bin/linux repo URLs #826

@glin

Description

@glin

This was first reported by @markrtucker

PPM just added support for Linux binary repo URLs like https://p3m.dev/cran/latest/bin/linux/noble-x86_64/4.5, which are equivalent to the existing __linux__/noble URLs but instead encode the R version and arch in the URL and not the user agent. Same as R-universe's Linux binary URLs.

These URLs don't seem to be working with pak though for some reason, as pak seemingly downloads the binary but ends up compiling a source package instead.

Here's a repro for Ubuntu 24 using Boom as an example:

options(repos = c(CRAN = sprintf("https://p3m.dev/cran/latest/bin/linux/noble-%s/%s", R.version["arch"], substr(getRversion(), 1, 3))))

pak::pkg_install("Boom")

# ℹ Getting 1 pkg (2.50 MB)
# ✔ Got Boom 0.9.16 (source) (118.46 MB)                              
# ✔ Downloaded 1 package (118.46 MB) in 4.5s                          
# ℹ Building Boom 0.9.16
# ✔ Built Boom 0.9.16 (1m 45.3s)                             

pak gets the Boom binary, the 118 MB file, but still compiles a source package for some reason. The 2.50 MB file above matches the Boom source file.

pak can install from R-universe Linux binary repo URLs just fine though. I am not sure what the difference is, but I did see that R-universe PACKAGES files have a Platform field in them. I haven't heard about the Platform field anywhere though, except seeing it in this recent issue #773

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