.TH PM 1 .SH NAME install, list, pull, remove \- package management scripts .SH SYNOPSIS .B pm/install [ .B -f ] .I category/name .br .B pm/list [ .B -i | .B -v ] [ .I category ] .br .B pm/pull .I category/name .br .B pm/remove .I category/name .SH DESCRIPTION .I PM is a package management system inspired by .IR contrib and .IR 9pm , but with greater focus on speed and maintainability. Packages are stored as .B .tgz files on an HTTP server, rather than as discrete files on sources, for improved speed. .PP Packages are described by a category and a name. Categories include .I devel, .I lib, and .I network. Package names include .I mercurial, .I openssl, and .I openssh. A full accounting of categories may be obtained by simply listing the directories in .B /contrib/packages/ . Listing of individual packages is accomplished through the .B pm/list command. .TP .I pm/install Installs the package and any necessary dependencies. The specified package will be automatically downloaded using the .B pm/pull command, as will any dependencies. By default, existing files will not be overwritten. The .B -f option forces the overwriting of existing files. .TP .I pm/list List the available packages, one per line, with no additional description, suitable for further processing. The .B -i option gives a listing of all currently installed packages. The .B -v option gives a description of each package. If a category is specified, only packages under that category are listed. .TP .I pm/pull Download the specified package from the package repository. This is not necessary for installation tasks, but may be of interest if you wish to examine the package prior to installing. .TP .I pm/remove Deletes files installed by the specified package. Does not remove dependency packages, as they may be needed by other packages. .SH PACKAGE SERVERS Any HTTP server may act as a package server provided its HTTP root directory contains a .B contrib/packages directory with .B root.tgz files in the package directories. The list of package servers is maintained in .B /lib/ndb/local in the following format: .br .EX pm=srvlist srv=jfloren.net srv=anotherserver.com .EE .br Additional servers may be added; servers will be tried in order. If a package is not found on one server, the other servers will be tried one after the other until a .B root.tgz file is found. .SH EXAMPLES .LP Install Mercurial. .sp 1 .EX % pm/install devel/mercurial .EE .PP Remove Mercurial, leaving any dependencies installed. .sp 1 .EX % pm/remove devel/mercurial .EE .SH FILES .TP .B /contrib/packages/installed listing of currently installed packages. .TP .B /contrib/packages/* directories representing package categories. .TP .B /contrib/packages/*/* directories for individual packages. .TP .B /lib/ndb/local HTTP servers with packages for downloading. .SH SOURCE .B /rc/bin/pm .SH SEE ALSO .IR proto (2), .IR replica (1), .IR replica (8), .IR contrib (1), .SH BUGS Send bug reports to .I john@jfloren.net