Repository navigation
Platform Support
updateself documentation edited this page Oct 16, 2026
·
6 revisions
Documentation for updateself 2.1.0. Versioned source.
All rows below have implemented routing and automated mocked tests where noted. A green package job validates that artifact on its build OS; it does not certify every update on arbitrary production systems. Consult the actual workflow run.
| Family | Procedure | CI environment |
|---|---|---|
| Debian/Ubuntu and derivatives | apt-get update then upgrade; optional dist-upgrade | Debian package build/install; Linux mocked routing |
| Fedora/RHEL/Rocky/Alma/CentOS Stream | DNF5, DNF, then YUM fallback | Fedora RPM build/install; mocked routing |
| Arch/Manjaro/EndeavourOS | pacman -Syu; no partial refresh | Arch package build/install; mocked routing |
| openSUSE Leap/SLES | zypper refresh/update | RPM format plus mocked routing; live SUSE transactions unverified |
| openSUSE Tumbleweed | zypper refresh/dup | Mocked routing; live transactions unverified |
| Alpine | apk update/upgrade | Alpine package build/install; mocked routing |
| Void | xbps-install -Su twice (XBPS bootstrap transaction) | Void package build/install; mocked routing |
| Gentoo | emerge --sync; world; preserved-rebuild | Ebuild generated; source builds not run in CI |
| Slackware | slackpkg update/install-new/upgrade-all | Slackware package build/install; mocked routing |
| macOS Intel/Apple Silicon | Brew, MacPorts, softwareupdate, mas | Hosted macOS tests/pkg build; live Apple/App Store updates not run |
| NixOS | Explicit nixos-rebuild switch | Nix build verification and mocked routing; activation not run |
| FreeBSD | pkg; opt-in freebsd-update or installed pkgbase | VM package build/install; base update not run |
| OpenBSD | pkg_add -u; opt-in syspatch | VM package build/install; base patching not run |
| NetBSD | pkgin | VM package build/install; base OS upgrades excluded |
- Immutable/transactional/bootc/OSTree hosts: native update is reported unsupported; user/application components can still run. Their system update strategy is future work.
- Derivatives inherit their configured repositories and restrictions; no repository, mirror, pin, hold, release branch or trust-key changes are made.
- BSD and minimal Linux require Bash installed first. sudo, doas or root provides native administrative access. Switching from root to another user needs sudo/runuser.
- Traditional FreeBSD base updates skip jails and non-GENERIC kernels. No base-package migration. On detected pkgbase installations, the combined pkg upgrade transaction needs --base-install; it is skipped otherwise because it can also update the base OS.
- Nix profile CLI capability is checked at runtime. Locked flake references remain pinned; legacy nix-env uses the selected user's configured channels. No daemon self-upgrade, channel switching or generation deletion.
- Deno prerelease installations are skipped. Detected LTS uses its channel command; channel reporting varies by Deno release, so review previews for pinned runtimes.
- System Python/pip are left to their distributor. Explicit non-venv Python must live in the target user's home and not in known managed layouts. Conda environment updates and pyenv interpreter installation are not automated.
- The first release does not scan every Python or every user environment on disk.
- FreshClam skips an active daemon; it never stops services or removes locks.
- Cargo requires an existing cargo-update helper; AUR requires yay/paru. npm only updates the active user-owned prefix within installed semver constraints.
- Standalone self-updaters currently recognise supported user-owned layouts only. A manually installed /usr/local/bin tool can be skipped until its ownership is configured deliberately in a future release.
updateself 2.1.0 · Home · Command reference · Edit documentation sources
updateself
Home Installation Command reference Self-management
Platform guides
Tools and help
Supported tools Python and pip Platform support Troubleshooting FAQ
Project