This document is the user-facing install and verification surface for Linux release artifacts.
Use it with:
docs/release/SIGNING.mddocs/linux-packaging-cd-plan.mddocs/linux-validation-checklist.md
Current Linux support should be described by distro tier, not as one flat promise.
| Distro family | Artifact | Current posture |
|---|---|---|
| Ubuntu 24.04 | DEB |
broad-feature target |
| Fedora 42 | Fedora RPM |
broad-feature target |
| Debian 12 | baseline/no-WebKit DEB |
package/runtime baseline; browser/WebAuthn status remains explicit |
| Rocky 10 | Rocky RPM |
terminal-first target; uses the no-WebKit package path |
| Arch, Mint, NixOS | source/package-manager follow-up | early QA target, not a broad support claim yet |
Download artifacts from the Jesssullivan/cmux GitHub release page for the
tag under test.
Expected Linux artifacts:
cmux_<version>_amd64.debcmux_<version>_arm64.debcmux_<version>+deb12_amd64.debcmux_<version>+deb12_arm64.debcmux-<version>-1.fc42.x86_64.rpmcmux-<version>-1.fc42.aarch64.rpmcmux-<version>-1.el10.x86_64.rpmcmux-<version>-1.el10.aarch64.rpmcmux-<version>-linux-amd64.tar.gzcmux-<version>-linux-arm64.tar.gz
Each signed artifact should have a sibling .asc signature.
The release-signing public key is expected at:
curl -L https://github.com/Jesssullivan/cmux/raw/main/docs/release/cmux-release-signing-key.asc \
| gpg --importIf that URL is not available for the release you are testing, use the public key attached to the release notes or treat the release as unsigned.
For RPM verification:
sudo rpm --import https://github.com/Jesssullivan/cmux/raw/main/docs/release/cmux-release-signing-key.ascUse this path for Ubuntu 24.04.
gpg --verify cmux_<version>_amd64.deb.asc cmux_<version>_amd64.deb
sudo apt-get update
sudo apt-get install ./cmux_<version>_amd64.deb
cmux --versionUse this path for Debian 12. The +deb12 package is built without WebKitGTK, so
browser panels and WebAuthn/browser behavior must be recorded separately from
package/runtime success.
gpg --verify cmux_<version>+deb12_amd64.deb.asc cmux_<version>+deb12_amd64.deb
sudo apt-get update
sudo apt-get install ./cmux_<version>+deb12_amd64.deb
cmux --versionFor release tags before the dedicated Debian artifact exists, attempts to
install the broad-feature Ubuntu-family DEB on Debian should be recorded as
diagnostic results, not support proof.
Use this path for Fedora 42.
rpm -K cmux-<version>-1.fc42.x86_64.rpm
sudo dnf install ./cmux-<version>-1.fc42.x86_64.rpm
cmux --versionFedora 42 is a broad-feature target, so QA should include terminal/split, socket/API, browser, notification, and lock behavior where practical.
Use this path for Rocky 10.
rpm -K cmux-<version>-1.el10.x86_64.rpm
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --set-enabled crb
sudo dnf install ./cmux-<version>-1.el10.x86_64.rpm
cmux --versionRocky 10 is terminal-first until a browser-capable package path is proven. QA should verify terminal/split/focus, basic socket/API behavior, and clear behavior for browser commands when WebKitGTK is unavailable.
Use the tarball only when a native package is not appropriate.
gpg --verify cmux-<version>-linux-amd64.tar.gz.asc cmux-<version>-linux-amd64.tar.gz
tar xzf cmux-<version>-linux-amd64.tar.gz
cd cmux-<version>-linux-amd64
sudo ./install.sh /usr/local
cmux --versionThe tarball installer writes the udev rules needed for FIDO2/U2F hardware keys. Reload udev rules if the package manager did not do it for you:
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=hidrawWhen reporting Linux install results, include:
- artifact filename
- artifact SHA256 if available
- distro name and version
- install command used
cmux --versionoutput- terminal/split smoke result
- socket/API smoke result
- browser status
- notification status
- WebAuthn status
- logs or screenshots for failures