Skip to content

what would it take to support linux-binary? #162

@r2evans

Description

@r2evans

What is the effort required to be able to support a limited scope of linux-binary packages? By "limited scope", I mean a specific targeted linux distro and R-version combination.

As an example, I can devtools::build(..., binary=TRUE), and it will create a package (with already-compiled libraries when there is cpp code to compile) named something like mypkg_1.2.3_R_x86_64-pc-linux-gnu.tar.gz. What is not told in that filename is that it is compiled on ubuntu-24.04 using R-4.4. The embedded DESCRIPTION file reflects

Built: R 4.4.3; x86_64-pc-linux-gnu; 2025-05-23 20:29:52 UTC; unix

I can update that package into my local repo, update the PACKAGES using tools::write_PACKAGES(), and I can see in the top-level PACKAGES that the packages are found and listed with

Path: bin/x86_64-pc-linux-gnu-library/contrib/4.4

What I don't know (in the PACKAGES format) is if they are tagged as being binary somehow. (I cannot find a reference for PACKAGES's structure.) It is not served when requested, though.

Part of the complexity of serving to multiple distros is matching dependency libraries and compilers and several other things. I don't want to address any of that, since my case is to support linux-binary packages for the only linux environment that has access to my locally-served R repo.

I know that part of it is technically feasible, since p3m.dev does it (while adding the need for an HTTP user-agent string to specify the os/distro details). They have a successful business model with binary packages. I am not trying to reproduce (or compete with) the much larger scale and coverage that P3M supports.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions