Man Linux: Main Page and Category List

NAME

       paco - a source code package organizer

SYNOPSIS

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

DESCRIPTION

       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.

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

       --version
              Display version information and exit.

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

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

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

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

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

LOG OPTIONS

       -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:/selinux:/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.

       --ignore-errors
              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).

       --ignore-shared
              With -p or -D, do not log the shared files. They are  logged  by
              default,  unless  variable  LOG_IGNORE_SHARED is set to 1 in the
              configuration file (type ’man pacorc’ for more information).

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

REMOVE OPTIONS

       -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-shared
              Remove also the shared files.

PATH MATCHING

       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.

EXAMPLES

       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 install.man"

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

       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 ".conf":

           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

BUGS

       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.

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-2009 David Rosal <davidrr@sourceforge.net>
       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), pacoball(8), superpaco(8), rpm2paco(8)