Skip to content
Albert Hopkins edited this page Feb 9, 2024 · 7 revisions

Gentoo Build Publisher

Gentoo Build Publisher is a way to build gentoo updates in CI/CD and have those builds published (rsync for the portage tree; http for binpkgs) to individual machines.

Introduction

Gentoo Linux is a source-based Linux distribution. Gentoo's package manager, portage, generally manages packages by downloading sources, building the packages from source, and then installing the built files onto your system. This provides the user with plenty of flexibility, which is primarily why Gentoo users prefer Gentoo. However this can also be time consuming and, in the case of failed builds, can result in a system that's inconsistent. In addition, if software maintenance is not down regularly, updating an old system can be difficult.

Gentoo Build Publisher is a system that serves Gentoo build repositories (ebuilds) and binary packages built on them in a consistent manner. It can do this for multiple machines in multiple configurations. Additionally, Gentoo Build Publisher can host the machine build configuration from version control, and serve it along with the ebuilds and binary packages built from them. And it provides these cleanly, consistently, and continuously.

Features

For me Gentoo Build Publisher (GBP) solves the following problems:

  • Building packages for machines continuously so I don't have to remember to and doing so automatically without user input.
  • Providing binary packages for my machines so I don't have to build software locally.
  • Only publishing builds that complete successfully so that my machines are never in an inconsistent state.
  • Supporting multiple machines with multiple configurations.
  • Keeping my machine's configurations in version control and keeping it in sync with the software built by that configuration.
  • Supporting different machine architectures in one build system.
  • Supporting different Gentoo profiles, from small musl-based servers to fully loaded desktop systems.
  • Giving the ability to "roll back" to a previous build.
  • Giving the ability to see what changes a build makes before I sync and update.
  • Ability to tag builds for a machine so that, for example, some machines follow a "@stable" tag while others can sync from the latest and greatest.
  • Ability to manage all this using a command-line interface that Gentoo users love.
  • Ability to create stage4 tarballs from builds.

Who Should Use It?

You might benefit from Gentoo Build Publisher if:

  • You have multiple Gentoo machines in multiple configurations and keeping them up to date "manually" is time-consuming.
  • You don't update your Gentoo system often but when you do you want it to be as painless as possible.
  • You want to install Gentoo on a new machine from an up-to-date stage4 image.
  • You enjoy consistent, repeatable build snapshots.
  • You want to be able to make a decision to update based on what packages are being updated before you sync.
  • You want to keep your machines' configuration in version control for ease of management.
  • You want to be able to roll back your portage tree but not have to re-compile everything.
  • You want to spend more time using Gentoo than managing Gentoo.

How to Install It

Please refer to the Install Guide for installing GBP. Like Gentoo Linux itself, there is no single way to install GBP. However the Guide will tell you how it can be installed in a single (virtual) machine configuration.

Clone this wiki locally