PACO(8) System PACO(8) NAME paco - a source code package organizer SYNOPSIS paco [OPTIONS] paco -l [OPTIONS] paco -q DESCRIPTION Paco is a tool to aid package management when installing programs from source code. When installing a package, paco can be used in log mode (with option -l) to wrap the installation command (e.g. "make install"), and log the created files. By default the log is stored in directory '/var/log/paco'. Paco gets also some extended information about the package that is bee- ing installed (version, author, description, configure options...), and stores it into a log in directory '/var/log/paco/_info'. Once some packages are installed and properly logged, paco can be used in list mode, which is the default, to display package information. Several options are provided to print the information in different for- mats. There are also options to remove packages, query for the owner of files, or maintain the package database. Mandatory arguments to long options are mandatory for short options too. GENERAL OPTIONS -a, --all Apply the specified action to all logged packages. This doesn't work with option -r. -h, --help Display a help message and exit. -L, --logdir=DIR Base log directory. Default is '/var/log/paco', unless variable LOGDIR is set in the configuration file (type 'man pacorc' for more information). -v, --verbose Verbose output. --version Display version information and exit. -x, --expand Automatically add the version suffix to the package names given by the command line. DATABASE MAINTENANCE OPTIONS -u, --update Synchronize the log of the package with the current status of the filesystem, calculating the size of the logged files and checking whether they are missing. If a file becomes compressed or uncompressed (with bzip2 or gzip), it is detected as well. Use with -a to update the whole database. -U, --unlog Remove the log of the package from the database. See also REMOVE OPTIONS. GENERAL LIST OPTIONS -b, --block-size=SIZE Use blocks of SIZE bytes for the sizes. SIZE may be an integer, optionally followed by one of the following: k, K, m, M. -k, --kilobytes Like '--block-size=1k', or '--block-size=1024'. --sort=WORD Sort the list by WORD: When listing files, meaningful values for WORD are: 'name' and 'size'. When listing packages, WORD may be also: 'date', 'files', 'missing-files' or 'missing-size'. -R, --reverse Reverse order while sorting. -t, --total Print totals at the bottom of the list. PACKAGE LIST OPTIONS -1, --one-column List one package per line. -F Print the number of installed files. -M Print the number of missing files. -C Print the number of shared files (both installed and missing). -d, --date Show installation date (-dd shows the hour too). -s, --size Show the currently installed size of each package; in human readable format by default (e.g. 1.2M, 13k). -n, --missing-size Print the missing size of each package (= original size - cur- rent size). FILE LIST OPTIONS -f, --files List currently installed files of the package. -m, --missing-files List missing files (those files removed after the installation of the package). -f and -m options can be used together. -c, --shared List the shared files of the package (those files also logged by other packages). With -f, list only the installed shared files. With -m, list only the missing shared files. -w, --who-shares With -c, print the names of the packages that share each file. -y, --symlinks Print the contents of symbolic links. -s, --size Print the size of each file; in human readable format by default (e.g. 1.2M, 13k). -z, --no-package-name Do not print the name of the package. Useful for scripts. INFORMATION OPTIONS Note: Information may be not available for all packages. -i, --info Print package information. -o, --configure-options Print the configure options the package was built with. -q, --query Query for the packages that own one or more files. -V, --variable=VAR Print the value of the variable VAR used to build the package, as found in the Makefile or (if not found) as retrieved from the environment. Supported variables are: CC, CFLAGS, LDFLAGS, CPPFLAGS, CXX and CXXFLAGS. If VAR is 'all', then all available variables are printed. This option may be used more than once in a single command; thus '-VCC -VCXX' will show the values for both CC and CXX variables. LOG OPTIONS -l, --log Enable log mode: If a shell command is given as an argument, execute and monitor it, printing the list of created files to the standard output. Otherwise the list of files to log is read directly from the standard input (lines beggining with '#' are skipped). Use with -p or -D to create a log for a package. -p, --package=PKG Instead of printing the list of files to the standard output, assume that the package PKG is beeing installed, and create a log for it. PKG must begin with an alphanumeric character. -D, --dirname Use the name of the current directory as the name of the package to be logged. -E, --exclude=PATH1:PATH2:... Colon-separated list of paths to skip when logging the installa- tion of a package. Default is '/tmp:/usr/src:/usr/info/dir', unless variable EXCLUDE is set in the configuration file (type 'man pacorc' for more information). -I, --include=PATH1:PATH2:... Colon-separated list of paths to scan when logging the installa- tion of a package. Default is '/', unless variable INCLUDE is set in the configuration file (type 'man pacorc' for more infor- mation). -+, --append With -p or -D, if the package is already logged, append the list of files to its log. REMOVE OPTIONS -r, --remove Remove a package, keeping the shared files and asking for con- firmation by default. Compressed files (with gzip or bzip2) are also removed. If all installed files are successfully removed, the package is removed from the database. --batch Don't prompt for confirmation when removing (and assume yes to all questions). -e, --skip=PATH1:PATH2:... Don't remove files in these paths. --remove-shared Remove also the shared files. -U, --unlog Always remove the log of the package from the database. EXAMPLES To log the installation of the package 'boofar-1.0', which is installed with 'make -C src install': paco -lp boofar-1.0 "make -C src install" This will create a log file named 'boofar-1.0' in the log directory, with the list of all installed files. (Note that in this example the quotes are required in order to prevent paco to treat '-C' as a command line option). Alternatively, we can use the name of the current directory as the name of the package to log, using the option -D: paco -lD "make install && make install.man" If we have forgotten to install a file, it can be added to a previously created log with the option -+: paco -lp+ boofar-1.0 "install boofile /usr/bin/boofile" To remove all versions of the package boofar, keeping the files in /etc and /root, and without asking for confirmation: paco -rx --batch -e /etc:/root boofar BUGS Due to LD_PRELOAD limitations, paco can't follow the trace of suid pro- grams. It's important to take this into account, since packages are usually installed with sudo(8), wich is suid. Nevertheless, some users have reported that they have not problems with paco and sudo... Use it at your own risk! For the same reason, paco does not work with programs that link libc statically. FILES /etc/pacorc - configuration file /var/log/paco - default log directory WEB SITE The latest version of paco should be always available at: http://paco.sourceforge.net COPYRIGHT Copyright (C) 2004-2005 David Rosal i Ricart This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. SEE ALSO pacorc(5), superpaco(8), a2paco(8), pacoball(8) paco-1.9.3 September 2005 PACO(8)