Pkg Operations

Manage BSD packages and repositories. Note that BSD package names are case-sensitive.

Facts used in these operations: server.Arch, files.File, server.Os, server.OsVersion, pkg.PkgPackages, server.Which.

pkg.packages

Install/remove/update pkg packages. This will use pkg ... where available (FreeBSD) and the pkg_* variants elsewhere.

pkg.packages(packages=None, present=True, pkg_path=None)
  • packages: list of packages to ensure
  • present: whether the packages should be installed
  • pkg_path: the PKG_PATH environment variable to set
pkg_path:

By default this is autogenerated as follows (tested/working for OpenBSD): http://ftp.<OS>.org/pub/<OS>/<VERSION>/packages/<ARCH>/. Note that OpenBSD’s official mirrors only hold the latest two versions packages.

NetBSD/FreeBSD helpfully use their own directory structures, so the default won’t work.

Example:

pkg.packages(
    name="Install Vim and Vim Addon Manager",
    packages=["vim-addon-manager", "vim"],
)