pkg-get(8)

NAME
pkg-get - a package management tool for CRUX

SYNOPSIS
pkg-get command <arguments> [options]

DESCRIPTION
pkg-get is a simple package management tool for CRUX. It tries to replicate some of the most useful features of the port management tool prt-get(8) to be used with binary packages. pkg-get requires a remote or local package repository that can be generated by the pkg-repgen(8) script.

COMMANDS

install <package1> [<package2>..<packageN>]
    Install given packages, download if necessary.

update [-fr] <package1> [<package2>..<packageN>]
    Update given packages, download if necessary. Pass the flag -fr to force a fresh download, even if a package of the expected name already exists in the local directory.

diff [--all]
    Show a list of outdated packages. The --all option also displays locked packages.

quickdiff
    Show a compact list of outdated packages.

sysup [--all]
    Update all outdated packages, download if necessary. Locked packages are excluded from the operation unless --all is passed.

depinst <package1> [<package2>..<packageN>]
    Install given packages and their dependencies.

depends <package>
    Show a recursive list of dependencies for <package> and their installation status.

quickdep <package>
    Show a brief list of dependencies for <package>.

dependent <package> [--all]
    Show installed (or all with the --all option) packages that depend on <package>.

path <package>
    Show local path of <package>.

info <package>
    Show information about <package>.

current <package>
    Show currently installed version of package.

isinst <package>
    Display whether a package is installed.

readme <package>
    Print README information (if available) for the package.

list
    List all packages in the active repositories.

listinst
    List all installed packages.

dsearch <string>
    Search for packages whose name or description contains <string>.

search <string>
    Search for packages whose name contains <string>.

dup List all duplicate ports (present in more than one repository). Multiple versions of a port appearing in the same repository are NOT considered dups; only the most recently-built package gets an entry in the listing for that repository.

printf <format string> [--filter=<filter>]
    Description blatantly stolen from prt-get(8). Print formatted port list. Format string can contain variables, which are replaced like this:

    •   %n -> name

    •   %p -> path

    •   %v -> version

    •   %r -> release

    •   %d -> description

    •   %e -> dependencies

    •   %u -> url

    •   %R -> Readme ("yes"/"no")

    •   %E -> pre-install script ("yes"/"no")

    •   %O -> post-install script ("yes"/"no")

    •   %M -> "None". for compatibility with prt-get

    •   %P -> "None". for compatibility with prt-get

    •   %l -> is locked ("yes"/"no")

    •   %i -> "no" if not installed, "yes" if it's installed and up to date and "diff" if it's installed and a new version is in the repository.

Use "\n" and "\t" to format your output (no additional format codes suported). You can specify a wildcard <filter> to filter by package name.

lock <package1> [<package2>..<packageN>]
    Lock a package (exclude it from being updated in a sysup). pkg-get and prt-get read their locked packages from different locations, allowing you to exclude certain packages from prt-get sysup but not from pkg-get sysup, or vice-versa.

unlock <package1> [<package2>..<packageN>]
    Unlock a package. Only affects the pkg-get database.

listlocked
    Display a list of locked packages. Only the pkg-get database is considered.

sync
    Syncronize local packages with the ones from the remote repository. If the repository is local, this command does nothing.

help
    Display brief help screen.

version
    Show pkg-get version.

OPTIONS

-do Download only. Applicable to: sysup, install, depinst, update.

-f  Force installing / upgrading. This is passed to pkgadd(8).

-im Ignore md5sum mismatches.

--aargs="arguments"
    Pass the specified arguments to pkgadd(8).

--config=/path/to/file
    Use the specified configuration file.

-r <root>
    Use <root> directory for operations involving the package database (install, depinst, update, isinst, current, listinst, diff, quickdiff, sysup). This option does not affect the directories from which pkg-get loads the metadata or tarballs; those settings are still governed by the entries in the configuration file. When using -r <root>, the relevant pkgadd.conf is the one on the target filesystem, not the one where pkg-get is running. Any custom directives in your pkgadd.conf should be copied to the corresponding location under the new root, or else you should pass the --aargs option to tell pkgadd to read its configuration from a non-standard location. When combined with --pre-install or --post-install or --install-scripts, setting a root directory other than '/' has the side effect of copying the PKGINST shell script into the corresponding location under the new root. This action (and the subsequent chroot command) is the most direct way to accommodate the user's intention. Unfortunately it clutters the mounted volume with a small fragment of shell script. If such clutter is not desired, the option -r <root> should always be paired with the configuration setting 'runscripts no', leaving it up to the administrator of the mounted volume to perform any pre- or post-install tasks separately.

--pre-install
    Execute pre-install script if available.

--post-install
    Execute post-install script if available.

--install-scripts
    Execute pre-install and post-install scripts if available.

CONFIGURATION
Configuration is handled by the /etc/pkg-get.conf file, options are explained in the file itself.

EXAMPLES

pkg-get install sqlite3 php-sqlite3
    Install sqlite3 and php-sqlite3.

pkg-get depinst qt6-base -f
    Install qt6-base and all its dependencies, forcing any pkgadd operation if conflicting files are found.

pkg-get sysup -do
    Download new releases of all the outdated packages.

AUTHORS
Simone Rota <sip@varlock.com>, John McQuah <jmcquah@disroot.org>

SEE ALSO
pkgadd(8), prt-get(8), pkg-repgen(8)