Skip to content

install-dev.sh: support ostree-based distros (Silverblue, Universal Blue) #1266

Closed as not planned

Description

@celebdor

Problem

The install-dev.sh installer does not work on ostree-based Linux distributions such as Fedora Silverblue, Universal Blue (Bazzite, Aurora, Bluefin), and Fedora CoreOS.

On these systems /usr is an immutable ostree deployment. The install_rpm_packages() function calls dnf install -y (or yum/zypper/rpm -Uvh), which fails because it cannot write to the read-only filesystem. The correct tool is rpm-ostree install, which layers the package into a new deployment that takes effect after reboot.

This also means the script's assumption that the gateway systemd unit is immediately available after package installation does not hold — start_user_gateway() runs before the new deployment is booted.

Reproduction

# On Fedora Silverblue 42 / Universal Blue
curl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh \
  | OPENSHELL_VERSION=dev sh

The openshell CLI binary gets installed (possibly via the shell profile installer path), but the gateway sub-package and its systemd user unit are not installed. Running openshell gateway start returns error: unrecognized subcommand 'start' — which is expected after PR #1221 removed gateway start, but the replacement systemd-based flow also doesn't work because the unit was never installed.

Suggested approach

  1. Detect ostree in linux_package_method() — e.g. check for /run/ostree-booted or rpm-ostree availability.

  2. Two possible strategies:

    • Layer via rpm-ostree install: Install the RPMs into a new deployment, warn the user that a reboot is required, and defer start_user_gateway() to a post-reboot step (perhaps a first-boot systemd unit or a message telling the user to run a registration command after reboot).

    • User-local install (no layering): Extract binaries to ~/.local/bin/, place the systemd unit in ~/.config/systemd/user/openshell-gateway.service (adjusting ExecStart), and enable it immediately. This avoids the reboot but diverges from the package-managed layout.

    The user-local approach is probably the better UX for a dev install since it doesn't require a reboot and doesn't touch the base image.

Environment

Activity

  1. added
    os:linuxIssue affects Linux hosts
    area:buildRelated to CI/CD and builds
    and removed
    state:triage-neededOpened without agent diagnostics and needs triage
    on May 9, 2026
  2. drew commented on May 9, 2026

    @drew
    Collaborator

    🏗️ build-from-issue-agent

    Implementation Complete

    PR: #1285

    What was built

    Added an ostree-specific RPM install path in install.sh that stages release payloads under user-local paths and starts/registers the user gateway without mutating /usr.

    Tests

    • Unit: 7 installer shell assertions added in scripts/test-install-ostree.sh
    • Integration: N/A
    • E2E: N/A

    Docs updated

    • docs/about/installation.mdx
    • docs/get-started/quickstart.mdx

    The issue will auto-close when the PR is merged.

  3. added
    state:pr-openedPR has been opened for this issue
    and removed on May 9, 2026
  4. celebdor commented on May 11, 2026

    @celebdor
    Author

    Thanks!

  5. github-actions commented on Aug 30, 2026

    @github-actions

    This issue has had no activity for 14 days and is now marked stale. It may be closed in 7 days if there is no further activity. Comment or remove the state:stale label to keep it open.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:buildRelated to CI/CD and buildsos:linuxIssue affects Linux hostsstate:pr-openedPR has been opened for this issuestate:staleInactive item at risk of automatic closure.topic:compatibilityCompatibility-related work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions