MKPK(8) System Manager's Manual (smm) MKPK(8)

mkpkpackaging system using Plan9 mk

mkpk [operation] [package]

mkpk is a helper tool passing specific mkfiles to mk(1) to manage packages. operation can be one of the following:

mkpk build package
Builds the most recent version of a package tarball and puts it into PKGDIR.
mkpk fetch package
Downloads the necessary sources to build package to the directory SRCBASEDIR.
mkpk info package
Shows information about the installed tarball of a package.
mkpk install package
Installs the files from a built tarball of a package having the most recent version.
mkpk list package
Lists files from the installed tarball of a package.
mkpk uninstall package
Uninstalls the installed package by unlinking files from the filelist of its tarball.
mkpk update
Updates the mkfiles repository.
mkpk upgrade package
Upgrades the existing package, as if the following was executed, in order:
$ mkpk fetch package
$ mkpk build package
$ mkpk uninstall package
$ mkpk install package

You can see the full list of relevant environment variables used by mkpk in the file /lib/mkpk/defaults.mk (default location).

Directory holding the library mkfiles. By default, /lib/mkpk.
Passed to PRoot as an argument. Defaults to -b /etc, which bind-mounts /etc when creating a package.
URL of the repository with the mkfiles with information on how to build individual packages. Defaults to galeb-mkfiles repository.
If set to 1, no directories will be bind-mounted by PRoot when creating a package.
Full name of a package, including the full version. For example, “gcc-12.1.0-2” or “vim-9.0.135”.
Base name of a package. For example, “gcc” or “vim”.
Package database; TSV file holding the names, versions and installation timestamps of all installed packages. By default, /pkg/pkgdb.tsv.
If set to 1, pkgroot won't be deleted after creating a package.
Base directory for source code. Defaults to /src.
Space-separated list of directories which are created by extracting archives.
Space-separated list of directories to be eated, to which the archives are to be extracted. Useful when a source archive doesn't have a root directory like it should.
Space-separated list of directories to which the archive will be tracted. An alternative to SRCCRDIRS, when the directories already exist.
Space-separated list of directories which the directories from SRCDIRS will be renamed after extracting source archives.
Space-separated list of tarball names to which the tarballs will be saved. Useful eg. for Github tarballs which have only version in their name.
Directory containing mkfiles. By default, /src/mkfiles.

/pkg/*.tar.xz
Tarballs containing built binaries, ready to be extracted to /.
/pkg/pkgdb.tsv
Package database; TSV file holding the names, versions and installation timestamps of all installed packages.
/lib/mkpk/*.mk
Mkfiles to be included into individual package's mkfiles or called by the mkpk helper.
/src/[package]-[version]
Main source directory for a package.
/src/mkfiles/[package]
Mkfiles with instructions on how to build each individual package. Copied to /src/[package]-[version].

mk(1)

Strahinya Radich ⟨contact@strahinja.org⟩, 2022-2023.

April 22, 2023 Galeb 2.2