PORTEASY(8) BSD System Manager's Manual PORTEASY(8)NAMEporteasy — fetch and build ports
SYNOPSISporteasy [-AabCceFfhIikLlRSsuVvw] [-D date] [-d dir] [-p dir] [-r dir]
[-t tag] [port | -DVAR | -DVAR=VAL ...]
DESCRIPTIONporteasy maintains an updated ports tree, and fetches and builds ports
automatically, keeping track of dependencies.
The following options are available:
-a Use one of the FreeBSD project's anonymous CVS servers. Note
that this forces the use of ssh(1), regardless of the -R and
-S options.
-b Build the selected ports.
-C Don't clean port directories after building.
-c Clean the selected ports.
-D date Specify a date to use for cvs(1) operations.
-d dir Specify the package database directory (normally
/var/db/pkg).
-e Deselect ports that are already installed.
-F Force installation and registration, even if the port is
already installed.
-f Fetch the selected ports.
-h Show a summary of options and parameters.
-I Select installed ports.
-i Describe the selected ports.
-k Build packages for the selected ports.
-L List the packing lists for the selected ports.
-l List the selected ports.
-p dir Specify the ports directory (normally /usr/ports).
-R Force the use of rsh(1) to connect to remote CVS reposito‐
ries. By default, porteasy respects the existing CVS_RSH
setting. This option is ignored when using anoncvs.
-r dir Specify the location of the CVS repository.
-S Force the use of ssh(1) to connect to remote CVS reposito‐
ries. By default, porteasy respects the existing CVS_RSH
setting. This option is ignored when using anoncvs.
-s Indicate the installation status of the selected ports. Each
selected port is listed with a symbol indicating its status:
‘!’ Not installed.
‘ ’ Up-to-date.
‘<’ Older than the version in the ports tree.
‘>’ Newer than the version in the ports tree.
If the -s option is specified and no ports are specified on
the command line, all installed ports are selected as if the
-I option had been specified.
-t tag Specify a tag to use for cvs(1) operations.
-u Update all necessary files using cvs(1).
-V Show the porteasy version number and exit.
-v Verbose mode: show more information about what is being done.
-w Show the URL of the port's web site if there is one listed in
the port description.
Environment settings
Any command line argument of the form -DVAR, -DVAR=VAL or VAR=VAL is
interpreted as a variable assignment which will be exported into subpro‐
cesses' environments. Thus compile-time configuration options can be
specified on the porteasy command line.
Port names
The port names listed on the command line may be either unqualified or
fully qualified. A fully qualified port name is the path to the port
directory relative to the root of the ports tree (i.e. the port's cate‐
gory and name separated by a slash). An unqualified port name is the
name of the package built by the intended port, or part of that name.
Unqualified names need to be looked up in the ports index, which is usu‐
ally slightly out of date, so fully qualified names should be used when‐
ever possible.
Sequence of operation
This section describes the operations performed by porteasy and the order
in which they are performed.
Update ports tree infrastructure
If the -u option was specified, the root of the ports tree and
important subdirectories (Mk, Templates and Tools) are updated
using cvs(1). If possible, an up-to-date index is retrieved from
the FreeBSD website; otherwise, the version obtained from CVS
will be used.
Select ports
The selection list is initialized with the ports listed on the
command line (and, if the -I option was specified, all installed
ports) marked as explicit dependencies. Any unqualified names
are looked up in the index, using simple heuristics to identify
incompletely named ports. If a certain match is not found,
porteasy prints a list of possible matches and exits.
All direct and indirect dependencies (except, if the -e option
was specified, those that are already installed) are also
selected and marked as dependencies.
Update ports tree and discover dependencies
If the -u option was specified, the port directories for all
selected ports are updated using cvs(1). Each selected port's
Makefile is scanned to discover dependencies, which are in turn
selected and marked as implicit dependencies. This process is
repeated until no new dependencies are found.
Deselect installed ports
If the -e option was specified, porteasy checks to see if any of
the selected ports are already installed; those that are are des‐
elected. This process is not very accurate, as it sometimes
fails to detect that an older or alternate version of a selected
port is installed.
List selected ports
If the -l option was specified, the fully qualified name and
package name of all selected ports are listed. Explicitly
selected ports are indicated with a star.
List installed ports
If the -s option was specified, all selected ports are listed
with their status.
Show packing lists
If the option was specified, the packing lists for all explicitly
selected ports are shown.
Describe selected ports
If the -i option was specified, porteasy prints a description of
each port that was specified on the command line.
Show the URLs of the selected ports' web sites
If the -w option was specified, porteasy prints the URL of the
web site of each port that was specified on the command line, if
a URL is listed in that port's description.
Clean the tree
If the -c option was specified, porteasy runs the ‘clean’ target
on every selected port. If no ports were selected, porteasy runs
the ‘clean’ target on every known port that is present in the
tree.
Fetch ports
If at least one of the -b, -f or -k options was specified,
porteasy runs the ‘checksum’ target on every selected port. This
fetches the distfiles and verifies their checksums.
Build, install, package, clean ports
If one or both of the -f or -k options were specified, porteasy
runs the ‘install’ or ‘package’ target, followed by the ‘clean’
target (unless the -C option was specified), on every explicitly
selected port. porteasy lets the ports system handle dependen‐
cies on its own, since the reported dependencies are sometimes
too inclusive.
IMPLEMENTATION NOTES
There may be a significant difference between what ports are selected
(and listed if the -l option is specified) and what ports are actually
installed and/or have packages built for them, since implicitly selected
ports that are already installed, or somehow pass the dependency check
(e.g. because an alternate, equivalent port has been installed) will be
passed over by the ports system, as indeed they should.
porteasy tries to minimize the number of times cvs(1) is invoked, since
the overhead involved in connecting to a remote server is usually quite
high (and the user might have to type a password every time), but prefers
correctness to performance. The maximum number of invocations is (2 + NC
+ NP), where NC and NP are the number of distinct categories and ports
(including master directories and dependencies).
ENVIRONMENT
PORTEASY_OPTIONS Specifies a set of default options for porteasy. These
options can be overridden by command line parameters.
The following variables are removed from the environment before any work
is performed: CLASSPATH, LD_*, JAVA_*, USE_*, WANT_*.
FILESporteasy maintains and operates on a ports tree, normally /usr/ports.
Some information is gathered from the package database, normally located
in /var/db/pkg.
AUTHORSporteasy was written by Dag-Erling Sm�rgrav ⟨des@FreeBSD.org⟩. Several
people contributed their comments and suggestions, most notably
Eivind Eklund ⟨eivind@FreeBSD.org⟩.
BSD August 12, 2005 BSD