NAME
mkpk
—
packaging system using Plan9
mk
SYNOPSIS
mkpk |
[operation] [package] |
DESCRIPTION
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
ENVIRONMENT
You can see the full list of relevant environment variables used
by mkpk
in the file
/lib/mkpk/defaults.mk (default location).
mkpklib
- Directory holding the library mkfiles. By default, /lib/mkpk.
BINDDIRS
- Passed to PRoot as an argument. Defaults to
-b /etc
, which bind-mounts /etc when creating a package. MKFILESREPO
- URL of the repository with the mkfiles with information on how to build individual packages. Defaults to galeb-mkfiles repository.
NOBINDDIRS
- If set to 1, no directories will be bind-mounted by PRoot when creating a package.
PKG
- Full name of a package, including the full version. For example, “gcc-12.1.0-2” or “vim-9.0.135”.
PKGBASE
- Base name of a package. For example, “gcc” or “vim”.
PKGDB
- Package database; TSV file holding the names, versions and installation timestamps of all installed packages. By default, /pkg/pkgdb.tsv.
SKIPCLEAN
- If set to 1, pkgroot won't be deleted after creating a package.
SRCBASEDIR
- Base directory for source code. Defaults to /src.
SRCDIRS
- Space-separated list of directories which are created by extracting archives.
SRCCRDIRS
- Space-separated list of directories to be created, to which the archives are to be extracted. Useful when a source archive doesn't have a root directory like it should.
SRCEXDIRS
- Space-separated list of directories to which the archive will be
extracted.
An alternative to
SRCCRDIRS
, when the directories already exist. SRCTODIRS
- Space-separated list of directories
to which the
directories from
SRCDIRS
will be renamed after extracting source archives. SRCTOTARBALLS
- 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.
SRCMKFILES
- Directory containing mkfiles. By default, /src/mkfiles.
FILES
- /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].
SEE ALSO
AUTHORS
Strahinya Radich ⟨contact@strahinja.org⟩, 2022-2023.