feat: install R via manylinux_2_34 tarball on RHEL 10 - #104
Closed
bschwedler wants to merge 9 commits into
Closed
Conversation
Adds RHEL 10 (amd64 + arm64) to the latest release version (2026.05.0) and both dev streams (preview, daily). Templates and rendered files follow in subsequent commits.
dnf-based equivalent of the Ubuntu install script. Installs the rstudio-pm RPM package from the Posit Pro Cloudsmith repo (already configured by dnf.run_setup() in the Containerfile) and writes the same R/Python config to rstudio-pm.gcfg as the Ubuntu variant.
Mirrors the ubuntu-24.04 structure: python builder stage, dnf setup, package install, Python + R (Standard only), PPM install script, startup.sh. Uses registry.access.redhat.com/ubi10/ubi as base.
The RHEL 10 RPM assigns uid=998/gid=997 to the rstudio-pm user, while the Ubuntu .deb uses uid=999/gid=999. Hard-coding 999 caused three failures in the RHEL 10 Minimal dgoss run. Use goss Go template conditionals on IMAGE_OS_FAMILY at test runtime to select the correct expected values per OS family.
Avoid floating latest tag; 10.2 is the current RHEL 10 minor release, equivalent to the ubuntu:24.04 pin used on Ubuntu Containerfiles.
Equivalent to ubuntu:24.04 floating within the LTS release stream. Add a comment explaining the intent to prevent future "fixing" to a pinned minor version. Reverts 8ba4cab.
Switches from r.run_install() (RPM path) to r.run_install_manylinux()
for RHEL 10 Standard builds. The RPM at cdn.posit.co/r/rhel-10/pkgs/
carries Requires: flexiblas-devel, which is not in the UBI-redistributable
CRB subset and blocks installation on ubi10/ubi.
The manylinux_2_34 tarballs at cdn.posit.co/r/manylinux_2_34/ are
self-contained, require glibc >= 2.34 (satisfied by RHEL 10), and
extract directly to /opt/R/{version}/ without touching the package
manager. dgoss passes 30/30 on Standard and 19/19 on Minimal.
bschwedler
force-pushed
the
enterprise-linux-ubi10
branch
from
July 16, 2026 20:59
e5ecb97 to
4e2ac4e
Compare
Contributor
Author
|
Superseded — the underlying blocker ( Closing in favor of #130's approach. The manylinux macros themselves (posit-dev/images-shared#577) remain useful for a different, unrelated problem (self-contained installs for posit-dev/images-volumes) and are being tracked under their own epic instead. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Switches the RHEL 10 Containerfile from
r.run_install()tor.run_install_manylinux(). Standard dgoss now passes 30/30 with R 4.6.0 installed from the manylinux tarball. Depends on the images-shared macro PR.