PORTSDB(1)

NAME
portsdb, ports_glob - tools to manage and look up the ports database file

SYNOPSIS
portsdb [-hfquU]
ports_glob [-hMrR] [-x pkgname_glob | portorigin_glob] [pkgname_glob | portorigin_glob] ...

DESCRIPTION
The portsdb command is a tool to generates the ports database named INDEX.db from the ports index file named INDEX. It is commonly used among the tool suite and automatically updated on demand when it gets older than the index file. To save time, you can update it beforehand, like right after the index file is updated. In addition, considering that the INDEX file often gets outdated because it is updated only once a week or so in the official ports tree, it is recommended that you run “portsdb -Uu” after every CVSup of the ports tree in order to keep them always up-to-date and in sync with the ports tree.

ports_glob looks up the ports database to expand given patterns.

Actually, portsdb and ports_glob share an entity and are totally equivalent.

Before reading these instructions, you must understand that a port/package can have the following two types of related ports/packages:
required
    Ports/packages that a port/package needs for it to be built and/or run. Port Makefiles refer to this type of ports/packages using the BUILD_DEPENDS and RUN_DEPENDS macros, respectively.
dependent
    Ports/packages that need this port/package.

OPTIONS
The following command line arguments are supported:

pkgname_glob
    Specify one of these: a full pkgname, a pkgname without version, a shell glob pattern in which you can use wildcards ‘*’, ‘’?, and ‘[..]’ (e.g. “zsh”, “gnome*”, “bash-2*”, etc.), or an extended regular expression preceded by a colon ‘’:.

    ports_glob lists ports which pkgnames match the pattern.

portorigin_glob
    Specify a shell glob pattern. (e.g. “archivers/p5-*”), or an extended regular expression preceded by a colon ‘’:.

    ports_glob lists ports that match the pattern.

    Don't forget to include a slash if you want ports_glob to treat a pattern as a portorigin glob.

-h
--help
    Show help and exit.

-f
--force
    Force to update database regardless of timestamps.

-M
--master-recursive
    List all master ports of the given ports as well. It also lists the master ports of all those required by the given ports if -R is specified.

-q
--noconfig
    Do not read the configuration file - $PREFIX/etc/pkgtools.conf.

-r
--recursive
    List all those ports depending on the given ports as well.

-R
--upward-recursive
    List all those ports required by the given ports as well.

-u
--update
    Update or create the ports database file INDEX.db from the ports index file. It is in binary form and meant to be fast to search for information.

    Note: the ports database file is automatically updated if it is not up-to-date when looked up, so manual updating is not mandatory.

-U
--updateindex
    Update or create the ports index file called INDEX.

-x portorigin_glob
--exclude portorigin_glob
    Exclude ports matching the specified glob pattern from the list.

ENVIRONMENT
PORTSDIR
    Alternative location for the ports tree. Default is “/usr/ports”.

PORTS_INDEX
    Alternative location for the ports INDEX file. Default is “$PORTSDIR/INDEX”.

    It is recommendable that you set this variable to something other than the default to avoid conflict with CVS, CVSup, or CTM.

PORTS_DBDIR
    Alternative location for the ports database file. The database file will be located in the first writable directory in the following ones: $PORTS_DBDIR, $PORTSDIR, /usr/ports, $PKG_DBDIR, /var/db/pkg, $TMPDIR, /var/tmp, and /tmp.

PKGTOOLS_CONF
    Configuration file for the pkgtools suite. Default is “$PREFIX/etc/pkgtools.conf”.

FILES
/var/db/pkg
    Default location of the installed package database.

/usr/ports
    Default location of the ports tree.

INDEX
    Ports index file, located right under the ports tree.

INDEX.db
    Ports database file, located in $PORTS_DBDIR.

$PREFIX/etc/pkgtools.conf
    Default location of the pkgtools configuration file.

SEE ALSO
pkgdb(1), portversion(1), pkgtools.conf(5), ports(7)

AUTHORS
Akinori MUSHA <knu@iDaemons.org>

BUGS
-S -/ --slave-recursive is not implemented yet.

-M is very slow due to the limitation of make(1) and ports(7).