Skip to content

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 systemInstall withUpdates come from
Debian, UbuntuThe installer (registers the apt repository)apt upgrade
Fedora, RHEL, CentOSThe installer (registers the dnf repository)dnf upgrade
NixOSNix and NixOS (a configuration change)your system configuration
Any system with Nix, including macOSNix and NixOS (--method nix)your Nix profile
WindowsThe Windows installer (registers the Scoop bucket)scoop update reprobuild
Anything elseA release archivea 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 | less

2. Run it

curl -fsSL https://get.reprobuild.com/sh | sh

To see the commands it would run without changing anything, add --dry-run:

curl -fsSL https://get.reprobuild.com/sh | sh -s -- --dry-run
Note

The 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.

Important

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 | iex

The 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 | sh

Nix on any other system, including macOS

Install into your Nix profile:

curl -fsSL https://get.reprobuild.com/sh | sh -s -- --method nix

A 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.

2. Check the archive against the checksum file

sha256sum --ignore-missing -c 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}"
Important

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.

Danger

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 version

It 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 reprobuild from 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