- Buildkits encapsulate metadata about the package-building process.
- When a buildkit sees creation or updates within the buildkit GitHub repo, GitHub Actions builds the package and subsequently publishing it to a designated repository.
- Invoking
pgxman install
adds pgxman’s repository to your system, followed by package installations through your system’s native package manager.
System Compatibility
The backbone of pgxman’s build system is your system’s package manager. At present, onlyapt
-driven systems of Debian and Ubuntu are supported.
pgxman currently builds packages for
Debian Bookworm
and Ubuntu Jammy.
In the future, other package managers and operating systems will be supported. Currently, we plan to target:
- apt
- brew
- rpm
Extension Installation
Apt
During the extension installation phase, pgxman adds its Apt repository to your system, enabling the installation of extension packages. pgxman handles dependency management, installation, and uninstallation throughapt
.
All pgxman packages are marked as “held back” with apt-mark hold
, which prevents them from accidential installations,
upgrades, or removals outside of pgxman.
Buildkits
pgxman uses a repository of buildkits to know what extensions are available. When you usesearch
or install
, the buildkit
metadata is used to obtain information about that extension. A cached copy
of this repository is stored in the pgxman
folder in your user config
directory.
Each buildkit specifies how to build each extension, and the buildkit build
system builds it for each package manager. When a buildkit is added or updated,
a build is conducted automatically (using Github Actions) and the packages are
stored in pgxman’s repository.
Building a buildkit
pgxman build
uses Docker to build the buildkit packages locally. The result
is placed into the out/
directory in your current working directory.