pkg_version(1)
NAME
pkg_version - summarize installed versions of packages
SYNOPSIS
pkg_version [-hIoqv] [-l limchar] [-L limchar] [[-X] -s string] [-O origin] [index] pkg_version -t version1 version2 pkg_version -T pkgname pattern
DESCRIPTION
- The pkg_version command is used to produce a report of non
- base software
 packages installed using the pkg_add(1) command.
- Each package's version number is checked against one of two
- sources to
 see if that package may require updating. If the package
- contains information about its origin in the FreeBSD ports tree, and a
- version number
 can be determined from the port's Makefile, then the version
- number from
 the Makefile will be used to determine whether the installed
- package is
 up-to-date or requires updating.
- If no origin for a package can be found, or if the port's
- Makefile cannot
 be located, pkg_version will search for the package in the
- ports collection index file (typically /usr/ports/INDEX-6). Any match
- ing version
 number(s) there will be used to determine whether the in
- stalled package
 is up-to-date or requires updating.
- Generally, using the version number from a port's Makefile
- will provide a
 more accurate result, since, unlike the index file, it pro
- vides an unambiguous current version number, even when multiple versions
- of a port
 exist in the ports collection. Moreover, the ports collec
- tion index file
 is only updated at intervals, meaning that it may not com
- pletely reflect
 the version numbers of the software contained in the ports
- collection.
- Each package name is printed, along with a one-character
- status flag:
- = The installed version of the package is current.
- < The installed version of the package is older than
- the current
- version.
- > The installed version of the package is newer than
- the current
- version. This situation can arise with an out-of
- date index
 file, or when testing new ports.
- ? The installed package does not appear in the index.
- This could
- be due to an out of date index or a package taken
- from a PR that
 has not yet been committed.
- * There are multiple versions of a particular software
- package
- listed in the index file. Examples from the FreeBSD
- ports collection are the Tcl toolkit or the EMACS editor.
- ! The installed package exists in the index but for
- some reason,
- pkg_version was unable to compare the version number
- of the
 installed package with the corresponding entry in
- the index.
OPTIONS
- The pkg_version utility supports several command-line argu
- ments:
- -h Print help message.
- -I Use only the index file for determining if a package
- is out of
- date. This is much faster than using the version
- number from a
 port's Makefile, at the expense of potentially giv
- ing an incorrect result if the index file is out of date.
- -l Limit the output to those packages whose status flag
- matches the
- character(s) in limchar. More than one character
- can be specified in limchar. Note that because some of the sta
- tus flag characters are also special to the shell, it is best to
- quote limchar
 with single quotes.
- -L Limit the output to those packages whose status flag
- does not
- match limchar. You may specify more than one char
- acter to match
 in limchar. Note that because some of the status
- flag characters
 are also special to the shell, it is best to quote
- limchar with
 single quotes.
- -o Show the origin recorded on package generation in
- stead of the
- package name.
- -O Only list packages whose registered origin is
- origin.
- -q Enable quiet output. Quiet output precludes print
- ing the limchar
- when used with -l or -L. This is useful when used
- as the input
 to portupgrade(8).
- -s Limit the output to those packages whose names match
- a given
- string.
- -X Interpret string as a extended regular expression.
- -t Test a pair of version number strings and exit. The
- output con
- sists of one of the single characters = (equal), <
- (right-hand
 number greater), or > (left-hand number greater) on
- standard output. This flag is mostly useful for scripts or for
- testing.
- -T Test whether pkgname is matched by pattern and set
- the exit code
- accordingly. -T can also be used in `filter mode':
- When one of
 the arguments is `-', standard input is used, and
- lines with
 matching package names/patterns are echoed to stan
- dard output.
- -v Enable verbose output. Verbose output includes some
- English-text
- interpretations of the version number comparisons,
- as well as the
 version numbers compared for each package. Non-ver
- bose output is
 probably easier for programs or scripts to parse.
- index Specify the index to be used as a basis of compari
- son. This
- index can be specified as a filename (in the local
- file system)
 or a URL. Any URL understandable by fetch(1) can be
- used here.
 If no index file is specified on the command line,
 /usr/ports/INDEX-6 is used.
FILES
/usr/ports/INDEX-6  Default index file.
EXAMPLES
- The following is a typical invocation of the pkg_version
- command, which
 checks the installed packages against the local ports index
- file:
 % pkg_version -v
- The command below generates a report against the version
- numbers in the
 on-line ports collection:
 % pkg_version http://www.FreeBSD.org/ports/INDEX-6
- The following command compares two package version strings:
 % pkg_version -t 1.5 1.5.1
COMPATIBILITY
- The -c option has been deprecated and is no longer   support
- ed.
SEE ALSO
- fetch(1),   pkg_add(1), pkg_create(1), pkg_delete(1), pkg_in
- fo(1),
 portupgrade(8)
AUTHORS
- The pkg_version utility was written by Jeremy D. Lea
- <reg@FreeBSD.org>,
 partially based on a Perl script written by
 Bruce A. Mah <bmah@FreeBSD.org>.
CONTRIBUTORS
- Nik  Clayton <nik@FreeBSD.org>, Dominic Mitchell <dom@palmer
- harvey.co.uk>,
 Mark Ovens <marko@FreeBSD.org>, Doug Barton <DougB@gore
- an.org>, Akinori
 MUSHA <knu@FreeBSD.org>, Oliver Eikemeier <eik@FreeBSD.org>
- BSD Jul 27, 2005