Provided by: paco_2.0.9-3build1_amd64 bug


       paco - a source code package organizer


       paco [OPTIONS] <packages>
       paco -l [OPTIONS] <package> <command>
       paco -q <files>


       Paco is a program to aid package management when installing packages 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'.

       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 formats.

       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.

       The special option -- forces and end of option-scanning. This  is  specially  useful  when
       entering the install command in log mode.


       -a, --all
              Apply  the  specified  action to all logged packages. This doesn't work with option

       -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.  -vv  prints  also debugging messages (only meaningful with option

              Display version information and exit.


       -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 along with -a to update the whole database.

       -U, --unlog
              Remove the log of the package from the database.


       -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 the list by WORD: When listing files, meaningful values for WORD  are:  'name'
              and  'size'.  When listing packages, WORD may be also: 'date' (or 'time'), 'files',
              'missing-files' or 'missing-size'.

       -R, --reverse
              Reverse order while sorting.

       -t, --total
              Print totals at the bottom of the list.


       -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 - current size).


       -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
              With -f and/or -m, list only the shared files (those files  also  logged  by  other

       -N, --non-shared
              With  -f  and/or  -m, list only the non shared files (those files not logged by any
              other package).

       -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.


       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, --owner
              Query for the packages that own one or more files.


       -l, --log
              Enable log mode: If a shell command is given as an argument,  execute  and  monitor
              it,  logging the created files, otherwise the list of files to log is read from the
              standard input.
              The list of logged files is printed to the standard output, unless any of -p or  -D
              options  is  used,  in  which case is assumed that a package is to be logged in the
              paco database.
              When a shell comand is monitorized, paco returns the exit code of that command.
              See EXAMPLES below.

       -p, --package=PKG
              Specify the name of the package to log,  which  must  begin  with  an  alphanumeric
              character.  With -v, the list of logged files is also printed to the standard error
              stream. With -vv, paco prints detailed information about the install process.  This
              holds for option -D too.

       -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.   Default   is
              '/dev:/tmp:/usr/src:/media:/sys:/usr/share/info/dir', unless  variable  EXCLUDE  is
              set in the configuration file (type 'man pacorc' for more information).
              Shell wildcards are allowed in the PATHs. See PATH MATCHING below for more details.

       -I, --include=PATH1:PATH2:...
              Colon-separated list of paths to scan when logging. Default is '/', unless variable
              INCLUDE is set in the configuration file (type 'man pacorc' for more information).
              Shell wildcards are allowed in the PATHs. See PATH MATCHING below for more details.

              Do not exit if the install  command  fails.  This  allows  for  logging  uncomplete
              installations,  and cleanup the system upon an installation failure. Errors are not
              ignored  by  default,  unless  variable  LOG_IGNORE_ERRORS  is  set  to  1  in  the
              configuration file (type 'man pacorc' for more information).

              Log also the missing files (they are skipped by default). See EXAMPLES below.

       -+, --append
              With  -p  or  -D, if the package is already logged, append the list of files to its


       -r, --remove
              Remove a package, keeping the shared files and asking for confirmation by  default.
              Compressed  files  (with  gzip or bzip2) are also removed. If the option is doubled
              (-rr), or all logged files are successfully removed, the package  is  removed  from
              the database.

       -B, --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.
              Shell wildcards are allowed in the PATHs. See PATH MATCHING below for more details.

              Remove also the shared files.


       Options  -I,  -E  and -e accept a colon-separated list of paths, each of which may contain
       shell-like wildcards (*, ? and [..]).  Files are matched  against  each  of  those  paths,
       following  the  standard shell-like expansion, but with the following exception: If a path
       in the list does not contain any wildcard, and it is a  directory,  it  matches  any  file
       within that directory.
       Note  that if wildcards are to be used, the whole list of paths must be enclosed in single
       quotes (') to protect it from being expanded by the shell.


       To log the installation of the package 'foo-1.0', which  is  installed  with  the  command
       'make -C src install':

           paco -lp foo-1.0 "make -C src install"

       Note  that  in  this  example  the  quotes are required to prevent paco to treat '-C' as a
       command line option.
       Use single quotes if the command already contains double quotes:

            paco -lp foo-1.0 'echo "hello world" > /var/log/foo.log'

       The special end-of-option argument '--' may be used for the same purpose:

           paco -lp foo-1.0 -- make -C src install

       Alternatively, we can use the basename of the current directory as the name of the package
       to log, using the option -D instead of -p:

           paco -lD "make install && make"

       If  we  have forgotten to install a file, it can be added to a previously created log with
       the option -+:

           paco -lp+ foo-1.0 "install foo /bin/foo"

       Note that the option -+ cannot be used to remove a file from the log.  For  instance,  the
       following command:

           paco -lp+ foo-1.0 "rm /bin/foo"

       would not unlog the file /bin/foo from the log of foo-1.0, but it would mark it as missing

       To avoid such behaviour it is sometimes useful to join up composed install  commands  into
       one  single  command  and run paco once. For instance, imagine that a package installs the
       file /bin/foo, but we want it to be installed in /usr/bin/foo. If one runs this:

           paco -lp foo-1.0 make install
           paco -lp+ foo-1.0 "mv /bin/foo /usr/bin/foo"

       Both files, /bin/foo and /usr/bin/foo  remain  in  the  log.  /usr/bin/foo  is  marked  as
       installed,  and  /bin/foo is marked as missing. This is usually not the desired behaviour.
       As a workaround one can join up both commands in one single paco run:

           paco -lp foo-1.0 "make install && mv /bin/foo /usr/bin/foo"

       In this case only /usr/bin/foo is logged.

       The understand the meaning of the option --log-missing, consider  the  following  example,
       where the file /foo/bar does not exist:

           echo /foo/bar | paco --log-missing -lp foo

       This  would log the file /foo/bar, even if it is missing. Without the option --log-missing
       /foo/bar is skipped.

       To remove all versions of the package foo, keeping  the  files  in  /etc  and  /root,  and
       without asking for confirmation:

           paco -r --batch -e /etc:/root foo

       To  remove  the  package  foo-3.3, keeping the files in /var/log and the files ending with

           paco -r -e '/var/log:*.conf' foo-3.3

       We have installed the package 'bubble-1.9' in prefix  '/opt/bubble-1.9',  but  we  haven't
       logged the installation with paco. No problem! Just create a log for it thusly:

           find /opt/bubble-1.9 | paco -lp bubble-1.9


       Due to LD_PRELOAD limitations, paco can't follow the trace of suid programs.
       For the same reason, paco does not work with programs that statically link libc.


       /etc/pacorc - configuration file
       /var/log/paco - default log directory


       The latest version of paco should be always available at:


       Copyright (C) 2004-2009 David Rosal <>
       This  is  free software; see the source for copying conditions.  There is NO warranty; not


       pacorc(5), pacoball(8), superpaco(8), rpm2paco(8)