Arch Linux Installer is an interactive Bash installer for a current x86_64 Arch Linux system. It preserves eight product choices: Minimal TTY, Stock GNOME, optional Marble, a separate opt-in Marble GDM appearance, ext4 or Btrfs, GRUB or systemd-boot, optional LUKS2, and both fresh-install and dual-boot paths.
Use a published immutable release from the official Arch Linux x86_64 installation ISO, booted in UEFI mode with Secure Boot disabled and working network access. Legacy BIOS and non-x86_64 platforms are outside the supported boundary. Back up all important data before starting: a fresh installation can erase the selected physical disk.
Historical release 1.0.6 was published on 2026-10-04; its acceptance is recorded in the release evidence.
The commands below pin immutable release 1.0.6. Use them from the Arch ISO only after confirming publication and acceptance in the release evidence:
curl -fsS https://raw.githubusercontent.com/snaplyze/arch-linux/1.0.6/install.sh | bashFor a newer version, use the release-pinned command in the
latest published immutable GitHub Release.
These examples pin 1.0.6; they do not track main or a moving latest-download URL.
The bootstrap is release-pinned. It downloads the installer, its SHA-256 file, detached signature
and arch-linux.gpg; validates the exact public-certificate digest and fingerprints; rejects secret
key packets; then launches only the verified installer bytes from a private root-owned directory.
For a verification-only run:
curl -fsS https://raw.githubusercontent.com/snaplyze/arch-linux/1.0.6/install.sh | bash -s -- --verify-onlyThe certificate fingerprints must also be compared through an independently trusted channel. HTTPS, a checksum and a signature fetched from the same account do not by themselves establish identity. See the trust model.
As of 2026-10-09, the GNOME 51 recovery changes currently in this checkout are an unpublished
candidate. They add a shared signed extension package, reviewed desktop/GDM
compatibility and safe migration of the old local extension. They are not yet
available through pacman -Syu; see the current gates.
Release 1.0.6 delivers the installer guard, idle-probe, shared-ESP, account and recovery corrections recorded in the registry, together with package and repository verification hardening. All nine staged VM scenarios passed before its immutable 18-asset publication and Pages deployment.
Fresh public Release/Pages byte and signature readback and the separate public-only Marble/GDM VM passed; validation records their separate outcomes and preserves historical evidence. Latest Arch media availability is distinct from the project's accepted ISO input; see compatibility.
- Minimal TTY installs the base system and networking without a graphical desktop.
- Stock GNOME installs unmodified GNOME, GDM and Wayland and remains the safe default.
- Marble is an explicit profile installed only through signed project packages, including unified Colloid GTK3, GTK4/libadwaita and icon styling.
- Marble GDM is a separate opt-in package. Its environment overlay is scoped only to the GDM Shell process; unsupported GNOME versions fall back to Stock.
The installer checks the latest immutable release at startup and offers a signed self-update when a newer version is available. Re-running the new release-pinned bootstrap is the recovery path when an in-place update cannot be authenticated. Marble packages and compatibility data update normally through:
sudo pacman -SyuThe Marble package lifecycle does not require a new installer release. The reviewed
package-only procedure now binds an exact package child
to the published installer; external package-only signing/publication still requires separate
authorization and is NOT_TESTED. Installed systems consume published signed packages through pacman -Syu.
Successful removal of the Marble helpers returns the user session to Stock; reinstalling restores
the package-owned profile when compatibility checks and activation succeed. Inspect the resulting
session; helper failures or foreign state require the lifecycle checks.
The unified arch-linux-colloid-gtk package replaces arch-linux-colloid-gtk3 during normal
updates. GTK4/libadwaita styling activates automatically on the next GNOME login, replacing existing
user CSS without backups; see the Marble lifecycle.
Stock GNOME installs no Colloid theme packages or project user CSS. The new installer
uses the signed project repository for arch-linux-gnome-extensions in both graphical
profiles. Minimal TTY remains independent of it. The new package layout and installer
routing require a full release; they cannot be delivered as a package-only update
against the unchanged 1.0.6 installer.
Installer changes use immutable SemVer releases. The changelog records
released changes; a source commit alone is not a published release. Arch
Linux itself continues to update through normal pacman -Syu. Marble/profile-only changes bump the
owning package's pkgrel and are delivered through the signed Pages repository; they do not require
a new installer release within an unchanged accepted package closure. The package-only tooling
is implemented; its external signing/publication remains separately authorized and NOT_TESTED.
The GNOME 51 seventh-package transition requires a full installer release. See
package-only updates and
DELIVERY-01.
Source pins change only through a reviewed pull request. The maintenance watcher may create or
update one advisory issue, and the monthly A+B build remains advisory. The configured release
pipeline creates one immutable release only when explicitly dispatched on reviewed main whose
exact head passed CI; merges alone never release. It builds, signs and tests a deterministic
version-only child of that exact commit before publishing it. It
cannot merge source, change a fingerprint, checksum, source pin or accepted Arch ISO. There is no
arch-os synchronization. Signing-key changes use a separate, explicitly authorized manual
rotation procedure.
All five GitHub Actions workflows use the project runner ubuntu-actions-arch-linux
on the existing shared Ubuntu VM. PR and merged-main source CI passed for the
migration. Check the exact
validation record for installer, production-signing and
release acceptance on this runner. See the
runner environment and operating boundaries.
Historical 1.0.0 and 1.0.1 evidence remains associated with its original inputs, but their
release/tag objects are retired and must not be used as current installation references. A successful
configured release pipeline creates the next immutable release and verified Pages deployment from
the exact merged main source and its separately bound release child. See the
release process and the
reviewed updates and delivery boundaries.
The normative source command is:
bash tests/source-tests.shA canonical unsigned package build requires a clean Arch environment and an unprivileged temporary builder:
repository/build-packages.sh "$ARTIFACT_DIR/unsigned"
repository/verify-unsigned-build.sh "$ARTIFACT_DIR/unsigned"Private signing material is absent from source. Only the configured release.yml workflow's snapshot
and finalize jobs receive the release-environment ARCH_LINUX_SIGNING_KEY and
ARCH_LINUX_SIGNING_PASSPHRASE secrets for the signing-only subkey; build, VM, PR, CI, Pages,
maintenance and public-readback jobs do not. The signing boundary, QEMU acceptance and release
operations are described in the release process.
- Installation
- Configuration contract
- Architecture
- Marble lifecycle
- Package repository
- Testing
- Maintenance
- Security policy
The project is distributed under GPL-3.0. Third-party attribution is isolated in NOTICE.md and is not a runtime dependency or update source.