Repository navigation
install-dev.sh: support ostree-based distros (Silverblue, Universal Blue) #1266
Description
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 shThe 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
-
Detect ostree in
linux_package_method()— e.g. check for/run/ostree-bootedorrpm-ostreeavailability. -
Two possible strategies:
-
Layer via
rpm-ostree install: Install the RPMs into a new deployment, warn the user that a reboot is required, and deferstart_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(adjustingExecStart), 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
- Fedora Silverblue / Universal Blue
install-dev.shfrommain(post PR refactor(cli): remove gateway lifecycle management #1221)OPENSHELL_VERSION=dev
Activity
drew commentedon May 9, 2026
Implementation Complete
PR: #1285
What was built
Added an ostree-specific RPM install path in
install.shthat stages release payloads under user-local paths and starts/registers the user gateway without mutating/usr.Tests
scripts/test-install-ostree.shDocs updated
docs/about/installation.mdxdocs/get-started/quickstart.mdxThe issue will auto-close when the PR is merged.
celebdor commentedon May 11, 2026
Thanks!
github-actions commentedon Aug 30, 2026
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.