Provided by: repro-env_0.4.0-1build1_amd64 

NAME
repro-env - Dependency lockfiles for reproducible build environments
SYNOPSIS
repro-env update
repro-env build -- [COMMAND]
DESCRIPTION
Tracks a description of a desired state in repro-env.toml, for example, the latest version of some
official container image, with the latest patch level and the latest version of some additional packages.
It also tracks a resolved variant in repro-env.lock that tracks the specific versions and checksums of
the packages needed to set up the described environment (at the patch-level available at the time of
writing).
The purpose of repro-env.toml is to make it trivial to re-resolve the specification if new patches become
available. This file is read by repro-env update.
The purpose of repro-env.lock is to document which compiler versions have been used for the release
binary associated with a given release. Recording this information is essential for reproducible builds
and allows future forensic investigation of the build environment. It can be either committed into the
source-code repository or attached to a release as an artifact, along with the compiled binary. This file
is read by repro-env build.
GLOBAL OPTIONS
-v, --verbose
Increase logging output (can be used multiple times)
-C path, --context path
Change the current directory to this path before executing the subcommand
UPDATE
This command resolves the environment described in repro-env.toml with the latest available updates and
writes a repro-env.lock. You would use this command similar to how you would use cargo update.
--no-pull
Do not attempt to pull the container tag from registry before resolving it
-k, --keep
Do not delete the build container, wait for ctrl-c
BUILD
This command loads a repro-env.lock, sets up the environment it describes in a container and mounts the
current directory to /build inside of the container. It then runs the given COMMAND inside of this
container.
-f path, --file path
The dependency lockfile to use
-k, --keep
Do not delete the build container, wait for ctrl-c
-e env, --env env
Pass environment variables into the build container (FOO=bar or just FOO to lookup the value)
PACKAGES: ARCH LINUX
Arch Linux hosts a comprehensive collection of recent compilers at https://archive.archlinux.org. You can
create a [packages] section in your repro-env.toml with system = "archlinux" to install additional
packages with pacman.
# repro-env.toml
[container]
image = "docker.io/library/archlinux"
[packages]
system = "archlinux"
dependencies = ["rust-musl", "lua"]
PACKAGES: DEBIAN
Debian is a widely accepted choice and hosts an archive of all their packages at
https://snapshot.debian.org/. You can create a [packages] section in your repro-env.toml with system =
"debian" to install additional packages with apt-get.
# repro-env.toml
[container]
image = "debian:bookworm"
[packages]
system = "debian"
dependencies = ["gcc", "libc6-dev"]
AUTHORS
repro-env is developed on github at https://github.com/kpcyrd/repro-env
2024-04-01 REPRO-ENV(1)