diff --git a/man8/pkgadd.8 b/man8/pkgadd.8 new file mode 100644 index 0000000..8144423 --- /dev/null +++ b/man8/pkgadd.8 @@ -0,0 +1,68 @@ +.TH pkgadd 8 "" "pkgutils 5.40.8" "" +.SH NAME +pkgadd \- install software package +.SH SYNOPSIS +\fBpkgadd [options] \fP +.SH DESCRIPTION +\fBpkgadd\fP is a \fIpackage management\fP utility, which installs +a software package. A \fIpackage\fP is an archive of files (.pkg.tar.gz). +.SH OPTIONS +.TP +.B "\-u, \-\-upgrade" +Upgrade/replace package with the same name as . +.TP +.B "\-f, \-\-force" +Force installation, overwrite conflicting files. If the package +that is about to be installed contains files that are already +installed this option will cause all those files to be overwritten. +This option should be used with care, preferably not at all. +.TP +.B "\-r, \-\-root " +Specify alternative installation root (default is "/"). This +should \fInot\fP be used as a way to install software into +e.g. /usr/local instead of /usr. Instead this should be used +if you want to install a package on a temporary mounted partition, +which is "owned" by another system. By using this option you not only +specify where the software should be installed, but you also +specify which package database will be used. +.TP +.B "\-c, \-\-config " +Specify an alternative configuration file (default is "/etc/pkgadd.conf", +or /etc/pkgadd.conf if the \-r option is used to define an +alternative installation root). +.TP +.B "\-v, \-\-version" +Print version and exit. +.TP +.B "\-h, \-\-help" +Print help and exit. +.SH CONFIGURATION +\fBpkgadd\fP is configured by the file \fI/etc/pkgadd.conf\fP. This file can contain rules, that are built out of three fragments: \fIevent\fP, \fIpattern\fP and \fIaction\fP. The event describes in what kind of situation this rule applies. Currently there are two types of events: \fBUPGRADE\fP and \fBINSTALL\fP. \fBUPGRADE\fP rules are applied when a package is installed over an existing version, and \fBINSTALL\fP rules are applied in any case. The pattern is a regular expression. The action applicable to both the \fBUPGRADE\fP and \fBINSTALL\fP event is \fBYES\fP and \fBNO\fP. More than one rule of the same +event type is allowed, in which case the first rule will have the lowest priority and the last rule +will have the highest priority. Example: + +.nf +UPGRADE ^etc/.*$ NO +UPGRADE ^var/log/.*$ NO +UPGRADE ^etc/X11/.*$ YES +UPGRADE ^etc/X11/XF86Config$ NO +.fi + +The above example will cause pkgadd to never upgrade anything in /etc/ or /var/log/ (subdirectories included), +except files in /etc/X11/ (subdirectories included), unless it is the file /etc/X11/XF86Config. +The default rule is to upgrade/install everything, rules in this file are exceptions to that rule. +(NOTE! A \fIpattern\fP should never contain an initial "/" since you are referring to the files in the +package, not the files on the disk.) + +If pkgadd finds that a specific file should not be upgraded it will install it under \fI/var/lib/pkg/rejected/\fP. +The user is then free to examine/use/remove that file manually. +.SH FILES +.TP +.B "/etc/pkgadd.conf" +Configuration file. +.SH SEE ALSO +pkgrm(8), pkginfo(8), pkgmk(8), rejmerge(8) +.SH COPYRIGHT +pkgadd (pkgutils) is Copyright (c) 2000-2005 Per Liden and Copyright (c) 2006-2017 CRUX team (http://crux.nu). +pkgadd (pkgutils) is licensed through the GNU General Public License. +Read the COPYING file for the complete license. diff --git a/man8/prt-get.8 b/man8/prt-get.8 new file mode 100644 index 0000000..6cb0b34 --- /dev/null +++ b/man8/prt-get.8 @@ -0,0 +1,674 @@ +.\" man page for prt-get +.\" original work by Johannes Winkelmann, jw at tks6 dot net +.\" +.\" revised 2022 by John McQuah, jmcquah at disroot dot org +.\" +.\" .PU +.TH "prt-get" "8" "" "" "" +.SH "NAME" +.LP +prt\-get \- an advanced package management tool to be used with +pkgutils from CRUX (see http://www.crux.nu) +.SH "SYNOPSIS" +.B prt\-get command [options] +.br +.SH "DESCRIPTION" +prt\-get is a package management tool which provides additional +functionality to crux' package management system. It works with the +local ports tree and is therefore fully compatible with ports(8) and +pkgmk(8)/pkgadd(8). It offers the following features: + +.PP +.TP +\ \ \ \(bu +abstract ports installation/update from file system + +.TP +\ \ \ \(bu +install/update a list of packages with one command + +.TP +\ \ \ \(bu +list dependencies for a list of packages + +.TP +\ \ \ \(bu +show information about ports + +.TP +\ \ \ \(bu +search within the ports + +.PP + +What prt\-get basically does is build, install/upgrade, and remove packages, using +pkgmk, pkgadd, and pkgrm. Additionally, you don't have be in the port's +directory to call prt\-get. prt\-get will search for the respective port +itself in a list of directories specified in /etc/prt\-get.conf. This +allows you to just install or update a package, without caring where +it actually is located on your file system. + +.PP + +prt\-get also lets you search for ports by name, +find information about ports (without installing them of course), +or print the dependencies of a port (as a space- or newline-separated list, +or a formatted tree). Note that dependencies are no +requirement for crux packages and therefore not always accurate. + +.PP + +prt\-get has a test mode so you can see what effect an install/update +operation would have. Use the \-\-test switch for this (see also: +OPTIONS) + +.SH "RETURN VALUE" +prt\-get returns 0 on success and a non-zero value otherwise (exact +value -> meaning mapping to be determined...) + +.SH "COMMANDS" +prt\-get uses so called commands, which always have to be the first +non-option argument passed. This is very similar to +.B cvs(1). +[command] can be one of the following: + + +.TP +.B install [\-\-margs] [\-\-aargs] [\-\-log] [ ...] +install all packages in the listed order. Note that you can do this +from any directory. + +.TP +.B depinst [\-\-margs] [\-\-aargs] [\-\-log] [ ...] +install all packages in the listed order including their dependencies. +Note that outdated packages won't be updated. + +.TP +.B grpinst [\-\-margs] [\-\-aargs] [\-\-log] [ ...] +install all packages in the listed order, but stop if installation of +one package fails. This can be used to install packages where package2 +depends on package1. + +.TP +.B update [\-\-margs] [\-\-aargs] [\-\-log] [ ...] +update all packages listed in this order. Note: if the latest version of +a package has acquired dependencies that were not needed by the currently-installed +version and are not present on the system, the update command will not attempt to +resolve this omission. prt\-get update behaves this way because pkgadd invocations +inherit the flag \-u for every package in the transaction (which if applied +to packages not currently installed, would result in an error). You can follow the CRUX mailing +list or the IRC channels to stay informed of the situations where an update will require +manual intervention, or parse the output of +.B prt\-get isinst $(prt\-get quickdep $(prt\-get quickdiff)) +as described in the +.B EXAMPLES +section below. + +.TP +.B remove [ ...] +remove packages listed in this order + +.TP +.B sysup [\-\-nodeps] +Update all installed packages which are outdated. Sorts by dependencies +by default. Passing the --nodeps switch tells prt\-get not to sort by dependencies, +for approximately the same effect as +.B prt\-get update $(prt\-get quickdiff). +Also see the +.B lock +and +.B unlock +commands to keep the currently installed versions, even if there are +changes in the ports tree. If you want to update only diffs which have +a lower version installed than the one in the ports tree, use the +--prefer-higher option. + +.TP +.B lock [...] +Do not update these packages in a +.B sysup +operation + +.TP +.B unlock [...] +Remove lock from these packages + +.TP +.B listlocked [-v|-vv] +List names of packages which are locked. As always, +.B -v +will additionally show the version, and +.B -vv +also includes the description from the Pkgfile. Note that the +.B -vv +switch will slow down the operation remarkably. + +.TP +.B diff [\-\-all] [\-\-prefer\-higher] [ ...] +show differences between installed packages and ports in the ports +tree. If arguments are given, shows only differences for these +packages, otherwise all differences are shown. It's also possible to use +shell-like +.B wildcards +for the diff command. Make sure you escape where needed. Locked +packages are only displayed if you use the --all switch. If you want +to see only diffs which have a lower version installed than the one in +the ports tree, use the --prefer-higher option. + +.TP +.B quickdiff +prints a simple list of packages which have a different version in the +ports tree than what is installed. The output is sorted alphabetically, +but you can generate a (larger) list sorted by dependencies using +.B prt\-get quickdep $(prt\-get quickdiff). +Note that the resulting list is usually a mix of installed and not-installed packages, +so it must be filtered by +.B prt\-get isinst +before being passed as argument to prt\-get install or prt\-get update. See the +.B EXAMPLES +section below. + +If you want to see only diffs which have a lower version installed than the one in +the ports tree, use the --prefer-higher option. + +.TP +.B search [\-v|\-vv] [\-\-path] [\-\-regex] +Search the ports tree for +.B expr +in their name + +.TP +.B dsearch [\-v|\-vv] [\-\-path] [\-\-regex] +Search the ports tree (both name and description) for the pattern +.B expr +(which can be a shell-like wildcard pattern or a regexp). The search in +the description is not case sensitive. Note that this requires prt\-get +to read every Pkgfile, which makes it rather slow; if you like this, +consider using the cache functionality, so you only have to spend this +time once after updating the ports tree has been updated. + +.TP +.B fsearch [\-\-full] [\-\-regex] +Search the ports tree for +.B pattern +as file name in their footprint. When called without '--full', strips +the directories from the file names before matching; this behaviour +will change in prt-get 0.6, where full path search will be the +default. Pattern can be a shell-like wildcard pattern (e.g. prt-get +fsearch "*.h") or a regular expression (e.g. prt-get fsearch --regex 'liblz(o2|ma).*') + + +.TP +.B info +Print available info for a port + +.TP +.B path +Print the path of a port + +.TP +.B readme +Print the port's README file if it exists; if set, uses $PAGER + +.TP +.B depends [ ...] +print a recursive list of dependencies needed to install the packages passed +as argument. It shows a list of the dependencies that were found in the ports tree, +plus a list of the dependencies that could not be found. + +.TP +.B quickdep [ ...] +print a simple list of recursive dependencies for all the packages passed +as argument. The output is formatted to be useful in command substitution, e.g. instead of +running +.B prt\-get depinst xorg-server +you might obfuscate your intentions with a gratuitous loop: +.B for i in $(prt\-get quickdep xorg-server); do prt\-get isinst $i || prt\-get install $i; done + +Note: output is restricted to those dependencies that can be found in the ports tree. It might be +useful to run +.B prt\-get depends | grep \(dq\-\- missing packages\(dq +as a first step, in order to ensure that your ports tree has everything needed for successful +builds. + +.TP +.B deptree +print a tree of the dependencies of the package +.B package. +Subtrees already shown are marked with '-->' to save some space. In +order to show them all, add the --all switch. + +Note that soft (optional) dependencies are NOT +considered when running prt\-get depends, prt\-get quickdep, or prt\-get deptree. The port +maintainer often provides a README if significant loss of functionality might result from +not having an optional dependency present when building, so be sure to interpret the output of +.B prt\-get +in light of the information provided in such a README. + +.TP +.B dependent +print a list of ports which have +.B package +in their "Depends on:" line. As with +.B depends, quickdep, deptree, +the Pkgfile line for soft (optional) dependencies is NOT parsed during this operation, so the output +might omit some of the ports that were linked against +.B package +during compilation. + +By default, output is restricted to ports that are installed. +To see all hard dependencies, add the --all switch; use --recursive to get a recursive +list (without duplication), and --tree to get a nicely indented one. + +.TP +.B dup [-v] [format] +List ports which can be found in multiple directories configured in +.B /etc/prt-get.conf +Use the verbose switch to simulate the output of version 5.12 and older (likely +to go away in the future). The format string can be used to create user +specified formats. The following symbols are currently replaced: + +.TP +\ \ \ \(bu +%n \-> name of the port + +.TP +\ \ \ \(bu +%p1 \-> Full path (including name) to port taking precendence + +.TP +\ \ \ \(bu +%p2 \-> Full path (including name) to port being hidden + +.TP +\ \ \ \(bu +%v1 \-> Version of port taking precendence + +.TP +\ \ \ \(bu +%v2 \-> Version of port being hidden + + +.TP +.B list [\-v|\-vv] [\-\-path] [\-\-regex] [filter] +List ports available in the ports tree. It's basically the same as +.B ports \-l +but looks in all directories specified in +.B /etc/prt\-get.conf. +It's also possible to use shell-like +.B wildcards +for the list command. Make sure you escape where needed + +.TP +.B printf [\-\-sort=] [\-\-filter=] +Print formated port list format string can contain variables, which +are replaced like this: +.TP +\ \ \ \(bu +%n \-> name + +.TP +\ \ \ \(bu +%p \-> path + +.TP +\ \ \ \(bu +%v \-> version + +.TP +\ \ \ \(bu +%r \-> release + +.TP +\ \ \ \(bu +%d \-> description + +.TP +\ \ \ \(bu +%e \-> dependencies + +.TP +\ \ \ \(bu +%u \-> URL + +.TP +\ \ \ \(bu +%P -> Packager + +.TP +\ \ \ \(bu +%M -> Maintainer + +.TP +\ \ \ \(bu +%R -> Readme ("yes"/"no") + +.TP +\ \ \ \(bu +%E -> pre-install script ("yes"/"no") + +.TP +\ \ \ \(bu +%O -> post-install script ("yes"/"no") + +.TP +\ \ \ \(bu +%l -> is locked ("yes"/"no") + +.TP +\ \ \ \(bu +%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 +ports tree. + +Use "\\n" and "\\t" to format your output (no additional format specified +suported). The optional format string2 can contain the same variables +as format string1 and is used to sort the output. You can specify a +.B wildcard filter +to filter by package name. + + +.TP +.B listinst [\-v|\-vv] [\-\-regex] [\-\-depsort] [filter] +List installed ports. It's basically the same as +.B pkginfo \-i, +but omits version when called without verbose (\-v, \-vv) switch. Plus +it is notably faster in my tests. \-v adds version information, \-vv +adds version and description. +.B Warning: +\-vv will slow down the process because it requires prt\-get to scan +both the ports database and the ports tree. +It's also possible to use shell-like +.B wildcards +for the listinst command. Make sure you escape where needed. By default +it's sorted alphabetically; use the \-\-depsort switch to sort by +dependencies. + +.TP +.B listorphans [\-v|\-vv] +List installed ports which do not appear in the "Depends on:" line of +any other port currently installed. Output appears alphabetically separated by newlines, making it +suitable for process substitution as shown in the +.B EXAMPLES +section below. Note that some core ports might be runtime +dependencies despite their absence in the "Depends on:" line; see Pkgfile(5) +for an explanation of this practice. Also remember that this operation does NOT account for soft +(optional) dependencies. Removing a non-core package returned by this command might require a +rebuild of other packages; use revdep(1) to locate such breakage. + + +.TP +.B isinst [ ...] +Check whether each package given on the command line is installed. Output in the case of multiple +arguments is separated by newlines, suitable for processing by awk or grep. Similar to +.B pkginfo \-i|grep \-E '^(package1|package2|...)' +but does not print the version information. This command has a return value of 0 if + is installed, otherwise a return value greater than 0. + +.TP +.B current +Shows the currently-installed version of , or a message +that is not installed. Unlike +.B prt\-get isinst package1 package2, +this command does not accept more than one package as argument. Use +.B pkginfo \-i| grep \-E '^(package1|package2|...)' +to work around this limitation. + +.TP +.B ls [--path] +Prints out a listing of the port's directory + +.TP +.B cat [] +Prints out the file to stdout. If is not specified, 'Pkgfile' is used. If set, uses $PAGER. + +.TP +.B edit +Edit the file using the editor specified in the $EDITOR environment variable. +If is not specified, 'Pkgfile' is used. + + +.TP +.B help +Shows a help screen + +.TP +.B dumpconfig +Dump the configuration to the current terminal + +.TP +.B version +Shows the current version of prt\-get + +.TP +.B cache +create a cache file from the ports tree to be used by prt\-get using the +\-\-cache option. Remember to run prt\-get cache each time you update the +ports tree. + +.SH "OPTIONS" + +The following options are primarily useful for install/update transactions. + +.TP +.B -f, -i +Force install; Implies 'pkgadd -f'; same as --aargs=-f + +.TP +.B -fr +Force rebuild, Implies 'pkgmk -f'; same as --margs=-f + +.TP +.B -um +Update md5sum, implies 'pkgmk -um'; same as --margs=-um + +.TP +.B -im +Ignore md5sum, implies 'pkgmk -im'; same as --margs=-im + +.TP +.B -us +Update signature, implies 'pkgmk -us'; same as --margs=-us + +.TP +.B -is +Ignore signature, implies 'pkgmk -is'; same as --margs=-is + +.TP +.B -uf +Update footprint, implies 'pkgmk -uf'; same as --margs=-uf + +.TP +.B -if +Ignore footprint, implies 'pkgmk -if'; same as --margs=-if + +.TP +.B -ns +No stripping, implies 'pkgmk -ns'; same as --margs=-ns + +.TP +.B -kw +Keep working directory, implies 'pkgmk -kw'; same as --margs=-kw + +.TP +.B \-\-margs="...", e.g. \-\-margs="\-im" +additional arguments to be passed to pkgmk; +note that \-d is already passed to pkgmk anyway + +.TP +.B \-\-aargs="...", e.g. \-\-aargs="\-f" +additional arguments to be passed to pkgadd + +.TP +.B \-\-rargs="..." +arguments to be passed to pkgrm; currently not used, implemented for +future uses and consistency reasons + +.TP +.B --ignore= +Don't install these packages, even if they're listed as dependencies + + +.TP +.B \-\-cache +Use cache file for this command + +.TP +.B \-\-test +Dry run, don't actually install anything, mostly interesting for +.B prt\-get install, prt\-get grpinst, prt\-get update, prt\-get sysup + +.TP +.B \-\-pre-install +Execute pre-install script if it's there + +.TP +.B \-\-post-install +Execute post-install script if it's there + +.TP +.B \-\-install-scripts +Execute pre-install and post-install script if they're there + +.TP +.B \-\-install-root= +Use as root directory for your installation; allows you to install the requested packages +onto a different directory than '/'. In daily usage, this option is not required; it's primarily +interesting if you're developing an independent installation. + +Most of the commands fully respect the setting for --install-root, and behave as if you chrooted to + before running the command (except that the binaries +.B prt\-get, pkgmk, pkgadd, pkgrm +are those on the parent filesystem, not those under ). This can lead to surprising side effects +if, for example, /etc/pkgadd.conf has different directives than /etc/pkgadd.conf. In order to +preserve the pkgadd.conf settings from the host system, append the option --aargs='-c +/etc/pkgadd.conf' to your +.B prt-get install +command, or just copy the desired directives into /etc/pkgadd.conf . + +.TP +.B \-\-log +Write build output to log file + +.TP +.B \-\-no-std-config +Don't parse the default configuration file + +.TP +.B \-\-config-prepend= +Prepend to configuration + +.TP +.B \-\-config-append= +Append to configuration + +.TP +.B \-\-config-set= +Set in configuration, overriding configuration file + +.TP +.B \-\-config= +Use alternative configuration file to read ports directories from + +.SH "" + +The following options are primarily useful for non-install (information-seeking) transactions, +although some of them affect the behaviour of install/upgrade transactions as well. + +.TP +.B \-v, \-vv +(verbosity level) Show version of a port (\-v), or show both version +and description (\-vv). Passing more than one of these options is equivalent to \-vv. + +.TP +.B \-\-path +Show path info for the ports found by a search or a dependency calculation + +.TP +.B \-\-regex +Interpret filter and search pattern as regular expression + +.TP +.B \-\-prefer\-higher, \-ph +Make prt-get parse the version strings and prefer the higher version, +even if the one found in the ports tree is lower. Also used during +a sysup operation. + +.TP +.B \-\-strict\-diff, \-sd +Override the 'preferhigher' configuration option + + + +.SH "CONFIGURATION" +.TP +See man prt\-get.conf(5) + +.SH "EXAMPLES" +.TP +.B prt\-get install irssi +Download, build and install irssi, with one simple command + +.TP +.B prt\-get install paper yasm +Install paper and yasm + +.TP +.B prt\-get update -fr openssh +Update your current version of openssh, forcing a rebuild even if no version difference is detected :\-) + +.TP +.B prt\-get info glib-networking +Show info about glib-networking + +.TP +.B MISSLIBS=$(revdep -vvv mpv | awk -F ':' '/(missing library)/ {print $3}'); [ -n \(dq${MISSLIBS[@]}\(dq ] && for i in \(dq${MISSLIBS[@]}\(dq; do prt\-get fsearch $i; done +Check for the presence of the runtime libraries needed by mpv. If any are absent, search the +footprints to determine which ports provide the missing libraries. + +.TP +.B prt\-get search --regex '^(m|n|p)c.*' +Return a list of all ports whose names start with "mc", "nc", or "pc" + +.TP +.B prt\-get dsearch irc +Return a list of all ports having "irc" in their name or description + +.TP +.B comm -13 <(ls /usr/ports/core) <(prt-get listorphans) +Filter out the core ports from the list of orphans, in shells (like bash) +that support process substitution + +.TP +.B prt\-get isinst $(prt\-get quickdep $(prt\-get quickdiff)) | awk '/not installed/ {print $2}' +After updating your ports tree, print out a list of dependencies that were not needed the last time +you built your currently-installed ports, but are needed now by the newer versions of these ports. + +.TP +.B prt\-get grpinst \-\-test `prt\-get quickdep graphviz` +Show what would happen if you installed all packages needed for +graphviz (test mode). Remove \-\-test to install graphviz and all +its dependencies. Remember that grpinst stops installing when one +package installation fails. + +.TP +.B prt-get listinst \-\-depsort | xargs prt-get grpinst \-\-install\-root=/mnt +Sort the list of installed packages by dependencies, and then install all +those packages onto a backup filesystem (mounted at /mnt). If you have a customized +pkgadd.conf that you want applied to this operation, either copy it to +/mnt/etc where pkgadd will be looking for it, or pass the additional option \-\-aargs=\(dq\-c +/etc/pkgadd.conf\(dq to the grpinst command. + +.TP +.B prt-get list --path --regex '^xorg.*' | grep -v "/usr/ports/xorg" +Show the ports whose names begin with xorg, but which appear outside the xorg port collection. +(At the time of writing, this command returned at least two font ports.) + +.TP +.B prt\-get update `prt\-get quickdiff` +Update all packages where a different version is in the ports tree + +.SH "AUTHORS" +Johannes Winkelmann +.SH "SEE ALSO" +prt\-get.conf(5), prt\-cache(8), Pkgfile(5), pkgmk(8), pkgadd(8), ports(8)