NAME
pkg_info —
a utility for displaying
information on software packages
SYNOPSIS
pkg_info |
[-BbcDdFfhIikLmNnpqRrSsVvX]
[-E
pkg-name]
[-e
pkg-name]
[-K
pkg_dbdir]
[-l
prefix] pkg-name
... |
pkg_info |
[-a | -u]
[flags] |
pkg_info |
[-Q
variable] pkg-name
... |
DESCRIPTION
The
pkg_info command is used to dump out information for
packages, which may be either packed up in files or already installed on the
system with the
pkg_create(1) command.
The
pkg-name may be the name of an installed package (with
or without version), a pattern matching several installed packages (see the
PACKAGE WILDCARDS section for a
description of possible patterns), the pathname to a binary package, a
filename belonging to an installed package (with
-F), or a
URL to an FTP-available package.
The following command line options are available:
-
-
- -a
- Show information for all currently installed packages. See
also -u. When neither -a nor
-u is given, the former is assumed.
-
-
- -B
- Show some of the important definitions used when building
the binary package (the “Build information”) for each package.
Additionally, any installation information variables (lowercase) can be
queried, too. In particular, automatic tells if a
package was installed automatically as a dependency of another
package.
-
-
- -b
- Show the NetBSD RCS Id strings from
the files used in the construction of the binary package (the “Build
version”) for each package. These files are the package Makefile,
any patch files, any checksum files, and the packing list file.
-
-
- -c
- Show the one-line comment field for each package.
-
-
- -D
- Show the install-message file (if any) for each
package.
-
-
- -d
- Show the long-description field for each package.
-
-
- -E
pkg-name
- This option allows you to test for the existence of a given
package. If a package identified by pkg-name is
currently installed, return code is 0, otherwise 1. The name of the best
matching package found installed is printed to stdout unless turned off
using the -q option. pkg-name can
contain wildcards (see the PACKAGE
WILDCARDS section below).
-
-
- -e
pkg-name
- This option allows you to test for the existence of a given
package. If a package identified by pkg-name is
currently installed, return code is 0, otherwise 1. The names of any
package(s) found installed are printed to stdout unless turned off using
the -q option. pkg-name can
contain wildcards (see the PACKAGE
WILDCARDS section below).
-
-
- -F
- Interpret any pkg-name given as
filename, and query information on the package that file belongs to. This
can be used to query information on a per-file basis. See the
TECHNICAL DETAILS section
below for more information.
-
-
- -f
- Show the packing list instructions for each package.
-
-
- -h
- Print usage message and exit.
-
-
- -I
- Show the index entry for each package. This option is
assumed when no arguments or relevant flags are specified.
-
-
- -i
- Show the install script (if any) for each package.
-
-
- -K
pkg_dbdir
- Override the value of the
PKG_DBDIR
configuration option with the value pkg_dbdir.
-
-
- -k
- Show the de-install script (if any) for each package.
-
-
- -L
- Show the files within each package. This is different from
just viewing the packing list, since full pathnames for everything are
generated. Files that were created dynamically during installation of the
package are not listed.
-
-
- -l
prefix
- Prefix each information category header (see
-q) shown with prefix. This is
primarily of use to front-end programs that want to request a lot of
different information fields at once for a package, but don't necessary
want the output intermingled in such a way that they can't organize it.
This lets you add a special token to the start of each field.
-
-
- -m
- Show the mtree file (if any) for each package.
-
-
- -N
- Show which packages each package was built with (exact
dependencies), if any.
-
-
- -n
- Show which packages each package needs (depends upon), if
any.
-
-
- -p
- Show the installation prefix for each package.
-
-
- -Q
variable
- Show the definition of variable from
the build information for each package. An empty string is returned if no
such variable definition is found for the package(s).
-
-
- -q
- Be “quiet” in emitting report headers and such,
just dump the raw info (basically, assume a non-human reading).
-
-
- -R
- For each package, show the packages that require it.
-
-
- -r
- For each package, show the packages that require it.
Continue recursively to show all dependents.
-
-
- -S
- Show the size of this package and all the packages it
requires, in bytes.
-
-
- -s
- Show the size of this package in bytes. The size is
calculated by adding up the size of each file of the package.
-
-
- -u
- Show information for all user-installed packages:
automatically installed packages (as dependencies of other packages) are
not displayed. See also -a.
-
-
- -V
- Print version number and exit.
-
-
- -v
- Turn on verbose output.
-
-
- -X
- Print summary information for each package. The summary
format is described in
pkg_summary(5). Its
primary use is to contain all information about the contents of a (remote)
binary package repository needed by package managing software.
TECHNICAL DETAILS
Package info is either extracted from package files named on the command line,
or from already installed package information in
<PKG_DBDIR>/<pkg-name>.
When the
-F option is used, a filename can be given instead of
a package name to query information on the (installed) package that file
belongs to. The filename is resolved to a package name using the package
database. The filename must be absolute, as in the output of
pkg_info -aF.
For example,
pkg_info -Fe /path/to/file
can be used to display the package the given file belongs to, and
pkg_info -LF /path/to/file
can be used to display all files belonging to the package the given file belongs
to.
PACKAGE WILDCARDS
In the places where a package name/version is expected, e.g., for the
-e option, several forms can be used. Either use a package
name with or without version, or specify a package wildcard that gets matched
against all installed packages.
Package wildcards use
fnmatch(3).
In addition,
csh(1) style {,}
alternates have been implemented. Package version numbers can also be matched
in a relational manner using the “≥”, “≤”,
“>”, and “<” operators. For example,
pkg_info -e 'name≥1.3'
will match versions 1.3 and later of the “name” package. (Make sure
to use shell quoting.) Additionally, ranges can be defined, by giving both a
lower bound (with “>” or “≥”) as well as an
upper bound (with “<” or “≤”). The lower
bound has to come first. For example,
pkg_info -e
'name≥1.3<2.0'
will match versions 1.3 (inclusive) to 2.0 (exclusive) of package
“name”.
The collating sequence of the various package version numbers is unusual, but
strives to be consistent. The magic string “alpha” equates to
“alpha version”, and sorts before a beta version. The magic string
“beta” equates to “beta version”, and sorts before a
release candidate. The magic string “rc” equates to “release
candidate”, and sorts before a release. The magic string
“pre”, short for “pre-release”, is a synonym for
“rc”. For example, “name-1.3alpha2” will sort before
“name-1.3beta1”, and they both sort before
“name-1.3rc1”. Similarly, “name-1.3rc3” will sort
before “name-1.3”, and after “name-1.2.9”. The magic
string “pl” equates to “patch level”, and has the same
value as a dot (‘.’) in the dewey-decimal ordering schemes, as
does the underscore (‘_’). Additionally, alphabetic characters
sort in the same place as their numeric counterparts, so that
“name-1.2e” has the same sorting value as
“name-1.2.5”.
ENVIRONMENT
See
pkg_install.conf(5)
for options, that can also be specified using the environment.
SEE ALSO
pkg_add(1),
pkg_admin(1),
pkg_create(1),
pkg_delete(1),
pkg_install.conf(5)
pkgsrc(7)
AUTHORS
- Jordan Hubbard
- most of the work
- John Kohl
- refined it for NetBSD
- Hubert Feyrer
- NetBSD wildcard dependency
processing, pkgdb, depends displaying, pkg size display, and more.