pkg-get/doc/pkg-get.8
John McQuah 1f479e5397 Merged changes from development branch
- Updated man-pages and README
- Updated copyright year
- Replaced external processes with native Perl routines
- Changed the interpretation of pkg-repgen's optional @ARGV to
  start with the target directory, like httpup-repgen
- Fixed PKGINST to accommodate ports with dashes in their names
2025-01-14 18:10:25 +00:00

259 lines
6.7 KiB
Groff

.TH pkg\-get 8 "January 13, 2025" "" ""
.SH NAME
\fBpkg\-get\fP \- a package management tool for CRUX
\fB
.SH SYNOPSIS
.nf
.fam C
\fBpkg\-get\fP \fIcommand\fP <arguments> [\fIoptions\fP]
.fam T
.fi
.SH DESCRIPTION
\fBpkg\-get\fP is a simple package management tool for CRUX.
It tries to replicate some of the most useful features of the
port management tool \fBprt\-get\fP(8) to be used with binary packages.
\fBpkg\-get\fP requires a remote or local package repository that
can be generated by the \fBpkg\-repgen\fP(8) script.
.SH COMMANDS
.TP
.B
install <package1> [<package2>..<packageN>]
Install given packages, download if necessary.
.TP
.B
update [\fB\-fr\fP] <package1> [<package2>..<packageN>]
Update given packages, download if necessary. Pass the flag \fB\-fr\fP
to force a fresh download, even if a package of the expected name
already exists in the local directory.
.TP
.B
diff [\fB\-\-all\fP]
Show a list of outdated packages.
The \fB\-\-all\fP option also displays locked packages.
.TP
.B
quickdiff
Show a compact list of outdated packages.
.TP
.B
sysup [\fB\-\-all\fP]
Update all outdated packages, download if necessary.
Locked packages are excluded from the operation
unless \fB\-\-all\fP is passed.
.TP
.B
depinst <package1> [<package2>..<packageN>]
Install given packages and their dependencies.
.TP
.B
depends <package>
Show a recursive list of dependencies for <package>
and their installation status.
.TP
.B
quickdep <package>
Show a brief list of dependencies for <package>.
.TP
.B
dependent <package> [\fB\-\-all\fP]
Show installed (or all with the \fB\-\-all\fP option) packages
that depend on <package>.
.TP
.B
path <package>
Show local path of <package>.
.TP
.B
info <package>
Show information about <package>.
.TP
.B
current <package>
Show currently installed version of package.
.TP
.B
isinst <package>
Display whether a package is installed.
.TP
.B
readme <package>
Print README information (if available) for the package.
.TP
.B
list
List all packages in the active repositories.
.TP
.B
listinst
List all installed packages.
.TP
.B
dsearch <string>
Search for packages whose name or description contains <string>.
.TP
.B
search <string>
Search for packages whose name contains <string>.
.TP
.B
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.
.TP
.B
printf <format string> [\fB\-\-filter\fP=<filter>]
Description blatantly stolen from \fBprt\-get\fP(8).
Print formatted port list. Format string can contain variables,
which are replaced like this:
.RS
.IP \(bu 3
%n -> name
.IP \(bu 3
%p -> path
.IP \(bu 3
%v -> version
.IP \(bu 3
%r -> release
.IP \(bu 3
%d -> description
.IP \(bu 3
%e -> dependencies
.IP \(bu 3
%u -> url
.IP \(bu 3
%R -> Readme ("yes"/"no")
.IP \(bu 3
%E -> pre\-install script ("yes"/"no")
.IP \(bu 3
%O -> post\-install script ("yes"/"no")
.IP \(bu 3
%M -> "None". for compatibility with prt\-get
.IP \(bu 3
%P -> "None". for compatibility with prt\-get
.IP \(bu 3
%l -> is locked ("yes"/"no")
.IP \(bu 3
%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.
.RE
.PP
Use "\\n" and "\\t" to format your output (no additional format
codes suported). You can specify a wildcard <filter> to filter
by package name.
.TP
.B
lock <package1> [<package2>..<packageN>]
Lock a package (exclude it from being updated in a \fBsysup\fP).
\fBpkg\-get\fP and \fBprt\-get\fP read their locked packages
from \fIdifferent\fP locations, allowing you to exclude certain
packages from \fBprt\-get sysup\fP but not from \fBpkg\-get sysup\fP,
or vice\-versa.
.TP
.B
unlock <package1> [<package2>..<packageN>]
Unlock a package. Only affects the \fBpkg\-get\fP database.
.TP
.B
listlocked
Display a list of locked packages. Only the \fBpkg\-get\fP database
is considered.
.TP
.B
sync
Syncronize local packages with the ones from the remote repository.
If the repository is local, this command does nothing.
.TP
.B
help
Display brief help screen.
.TP
.B
version
Show \fBpkg\-get\fP version.
.SH OPTIONS
.TP
.B
\fB\-do\fP
Download only. Applicable to: sysup, install, depinst, update.
.TP
.B
\fB\-f\fP
Force installing / upgrading. This is passed to \fBpkgadd\fP(8).
.TP
.B
\fB\-im\fP
Ignore md5sum mismatches.
.TP
.B
\fB\-\-aargs\fP="arguments"
Pass the specified arguments to \fBpkgadd\fP(8).
.TP
.B
\fB\-\-config\fP=/path/to/file
Use the specified configuration file.
.TP
.B
\fB\-r\fP <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 \fBpkg\-get\fP loads the
metadata or tarballs; those settings are still governed by the entries in
the configuration file.
When using \fB\-r\fP <root>, the relevant pkgadd.conf is the one on the
target filesystem, not the one where \fBpkg\-get\fP 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 \fB\-\-aargs\fP
option to tell \fBpkgadd\fP to read its configuration from a non\-standard
location.
When combined with \fB\-\-pre\-install\fP or \fB\-\-post\-install\fP or
\fB\-\-install\-scripts\fP, 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 \fB\-r\fP <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.
.TP
.B
\fB\-\-pre\-install\fP
Execute pre-install script if available.
.TP
.B
\fB\-\-post\-install\fP
Execute post-install script if available.
.TP
.B
\fB\-\-install\-scripts\fP
Execute pre\-install and post\-install
scripts if available.
.RE
.PP
.SH CONFIGURATION
Configuration is handled by the /etc/pkg\-get.conf file,
\fIoptions\fP are explained in the file itself.
.SH EXAMPLES
.TP
.B
\fBpkg\-get\fP install sqlite3 php\-sqlite3
Install sqlite3 and php\-sqlite3.
.TP
.B
\fBpkg\-get\fP depinst qt6\-base \fB\-f\fP
Install qt6\-base and all its dependencies, forcing any pkgadd operation if conflicting files are found.
.TP
.B
\fBpkg\-get\fP sysup \fB\-do\fP
Download new releases of all the outdated packages.
.SH AUTHORS
Simone Rota <sip@varlock.com>, John McQuah <jmcquah@disroot.org>
.SH SEE ALSO
\fBpkgadd\fP(8), \fBprt\-get\fP(8), \fBpkg\-repgen\fP(8)