For the most part the codebase is self-contained (e.g. all dependencies are vendored), but assembly of the stage1 requires some other tools to be installed on the system.
- GNU Make
- Go 1.5.3 or later
- autoconf
- aclocal (usually a part of automake)
- bash
- git
- glibc
- development headers
- the rkt binary links against the library
- gofmt (usually distributed with Go)
- govet (usually distributed with Go)
- TrouSerS (only when TPM is enabled)
- development headers
- the rkt binary links against the library
- libsystemd-journal
- development headers
- gpg (when running functional tests)
- glibc
- development headers
- the stage1 binaries link against the static library
- libdl
- development headers
- the stage1 binaries link against the library
- libacl
- development headers
- C compiler
- cat
- comm
- cpio
- gzip
- md5sum
- mktemp
- sort
- unsquashfs
- wget
- gpg (optional, required when downloading the CoreOS PXE image during the build)
- patch
- tar
- xz
- build dependencies for kernel
- bc
- binutils
- openssl
- build dependencies for lkvm
- build dependencies for systemd
- Linux 3.18+ (ideally 4.3+ to have overlay-on-overlay working), with the following options configured:
- CONFIG_CGROUPS
- CONFIG_NAMESPACES
- CONFIG_UTS_NS
- CONFIG_IPC_NS
- CONFIG_PID_NS
- CONFIG_NET_NS
- CONFIG_OVERLAY_FS (nice to have)
- libacl
- the library is optional (it is dlopened inside the stage1)
- bash
- systemd >= v222
- systemctl
- systemd-shutdown
- systemd
- systemd-journald