Install reprobuild
This page shows each way to install repro and how to check that the result runs. Pick the row for your system, follow its section, then go to Check that it worked.
| Your system | Install with | Updates come from |
|---|---|---|
| Debian, Ubuntu | The installer (registers the apt repository) | apt upgrade |
| Fedora, RHEL, CentOS | The installer (registers the dnf repository) | dnf upgrade |
| NixOS | Nix and NixOS (a configuration change) | your system configuration |
| Any system with Nix, including macOS | Nix and NixOS (--method nix) | your Nix profile |
| Windows | The Windows installer (registers the Scoop bucket) | scoop update reprobuild |
| Anything else | A release archive | a new archive |
Debian, Ubuntu, Fedora and RHEL: the installer
The installer detects your package manager, registers the Metacraft Labs package repository and its signing key, and lets the package manager install reprobuild. It needs root for the registration step.
1. Read the script
Read the script before you run it:
curl -fsSL https://get.reprobuild.com/sh | less2. Run it
curl -fsSL https://get.reprobuild.com/sh | shTo see the commands it would run without changing anything, add --dry-run:
curl -fsSL https://get.reprobuild.com/sh | sh -s -- --dry-runThe installer checks the downloaded keyring against a SHA-256 digest written into the script, and the package manager checks every package against that key from then on. The script itself arrives over HTTPS, so its own integrity rests on the host that serves it.
On macOS, and on a Linux distribution without apt or dnf, the installer falls back to its tarball method. That method refuses to run without its release verifier, which a piped installer does not have. Use Nix or a release archive there.
The installer's options:
<!-- generated:begin installer-help sh --> <!-- generated:end -->
Windows: the installer
The Windows installer registers the Metacraft Labs Scoop bucket and lets Scoop install reprobuild. Scoop checks each download against the hash in the bucket's manifest, on install and on every update.
1. Install Scoop
Install Scoop if you do not have it.
2. Run the installer
In PowerShell, read the script, then run it:
irm https://get.reprobuild.com/pwsh
irm https://get.reprobuild.com/pwsh | iexThe installer's options:
<!-- generated:begin installer-help pwsh --> <!-- generated:end -->
Nix and NixOS
reprobuild is packaged in the Metacraft Labs fork of nixpkgs.
NixOS
Run the installer. On NixOS it installs nothing and prints the change to make to your system configuration:
curl -fsSL https://get.reprobuild.com/sh | shNix on any other system, including macOS
Install into your Nix profile:
curl -fsSL https://get.reprobuild.com/sh | sh -s -- --method nixA release archive
Each release carries an archive per platform and a SHA256SUMS file.
1. Download the archive and the checksum file
Set the version and your platform, then download both files:
VERSION=0.2.20
PLATFORM=linux-x86_64
BASE=https://github.com/metacraft-labs/reprobuild/releases/download/v${VERSION}
curl -fsSLO "${BASE}/reprobuild-${VERSION}-${PLATFORM}.tar.gz"
curl -fsSLO "${BASE}/SHA256SUMS"Use PLATFORM=linux-x86_64.
Use PLATFORM=darwin-aarch64.
Download reprobuild-<version>-windows-x86_64.zip from the release page.
2. Check the archive against the checksum file
sha256sum --ignore-missing -c SHA256SUMSshasum -a 256 --ignore-missing -c SHA256SUMSGet-FileHash .\reprobuild-<version>-windows-x86_64.zip -Algorithm SHA256Compare the printed hash with the archive's line in SHA256SUMS.
3. Unpack it and put its bin directory on your PATH
tar -xzf "reprobuild-${VERSION}-${PLATFORM}.tar.gz"
export PATH="${PWD}/reprobuild-${VERSION}-${PLATFORM}/bin:${PATH}"Keep bin/ and lib/ together. repro loads its libraries from a path relative to its own location, so a repro copied out of the unpacked directory on its own does not start.
A checksum detects a corrupted download. It does not prove who built the archive: the checksum file comes from the same place as the archive, and no release-signing key is published yet.
Check that it worked
Run:
repro versionIt prints the version of the repro on your PATH. repro version --json prints the same information as JSON, with the protocol versions this binary speaks. Neither needs a project or a running daemon.
<!-- generated:begin capture install version --> <!-- generated:end -->
Uninstall
- Installer: run it with
--uninstall, shown below. It removes the package, the repository registration and the signing key, then checks that they are gone. - Windows:
scoop uninstall reprobuild. - Nix: remove
reprobuildfrom your profile or your system configuration. - Release archive: delete the unpacked directory and remove it from
PATH.
To uninstall with the installer:
curl -fsSL https://get.reprobuild.com/sh | sh -s -- --uninstall