Provided by: porg_0.10-1.1_amd64 bug

NAME

       porg - a source code package organizer

SYNOPSIS

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

DESCRIPTION

       Porg is a program to aid package management when installing packages from source code.

       When installing a package, porg may be used in log mode (with option -l) to wrap the installation command
       (e.g. "make install"), and log the created files into a text database.

       Porg also provides options for printing package information, package files, removing packages or querying
       for the owner of files.

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

       Mandatory arguments to long options are mandatory to short options too.

GENERAL OPTIONS

       -a, --all
              Apply to all installed packages (not with -r).

       -L, --logdir=DIR
              Base log directory. The logs for the installed packages are saved in this  directory.  Default  is
              '/var/lib/porg',  unless  variable  LOGDIR is set in the configuration file (type 'man porgrc' for
              more information).

       -v, --verbose
              Verbose output. -vv prints also debugging messages.

       -x, --exact-version
              Disable expansion of package version (not with -l).
              By default, porg automatically expands the package names given as arguments,  by  adding  all  the
              versions  of  the  package that are registered in the porg database. For instance, if foo-1.0  and
              foo-2.0 are installed, the command 'porg -r foo' would remove both packages, and 'porg  -r  foo-1'
              would remove only foo-1.0.
              The option -x inhibits this expansion, so that package names must match the basename and the whole
              version of a registered package.

       -h, --help
              Display a help message and exit.

       -V, --version
              Display version information and exit.

GENERAL LIST OPTIONS

       These options can be used to list packages or files.

       -R, --reverse
              Reverse order while sorting.

       -t, --total
              Print totals at the bottom of the list, when appliable.  When printing total sizes, the  sizes  of
              hardlinks to installed files are counted only once.

       -z, --no-package-name
              Do not print the name of the package when listing. Useful for scripts.

PACKAGE LIST OPTIONS

       -s, --size
              Print  the  installed  size of the package. Sizes of hardlinks to installed files are counted only
              once.

       -F, --nfiles
              Print the number of installed files.

       -d, --date
              Print the installation date of the package. Double it ('-dd') to print also the hour.

       -S, --sort=WORD
              Sort the list by WORD: 'name', 'size', 'files' or 'date'.

FILE LIST OPTIONS

       -f, --files
              List the files installed by the package.

       -s, --size
              Print the size of each file.

       -y, --symlinks
              Print the contents of symbolic links.

       -S, --sort=WORD
              Sort the list by WORD: 'name' or 'size'.

PACKAGE INFORMATION OPTIONS

       Only one of these options may be used at once.

       -i, --info
              Print package information (like summary, author, URL...), if available.

       -o, --configure-options
              Print the arguments (command line options and environment variables)  passed  to  the  'configure'
              script when the package was built.

       -q, --query
              Query for the packages that own the files specified as arguments.

PACKAGE LOG OPTIONS

       -l, --log
              Enable  log  mode.  If  a  shell command is given as argument, execute and monitor it, logging the
              created files; otherwise the list of files to be logged is read from the standard input. In either
              case, the relative paths are automatically resolved.
              The  list  of  logged  files  is printed to the standard output, unless any of -p or -D options is
              used, in which case it is assumed that a package is to be registered into the porg database.
              See EXAMPLES and FILE NAMES WITH SPACES below.

       -p, --package=PKG
              Specify the name of the package to be logged. With -v, the list of logged files is also printed to
              the  standard  error stream. With -vv, porg 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  the   installed   files.   Default   is
              '/tmp:/dev:/proc:/sys:/run',  unless  variable exclude is set in the configuration file (type 'man
              porgrc' 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 the installed files.  Default  is  '/',  unless
              variable include is set in the configuration file (type 'man porgrc' for more information).
              Shell wildcards are allowed in the PATHs. See PATH MATCHING below for more details.

       -j, --log-missing
              By default, when installing a package porg registers only those files that exist in the filesystem
              right after the installation. With this option porg registers also the missing files.

       -+, --append
              With -p or -D, if the package is already registered, append the list of created files to its log.

PACKAGE REMOVE OPTIONS

       -r, --remove
              Remove a package, keeping the shared files and asking for confirmation by default.

       -U, --unlog
              Unregister the package from the database, without removing any file.

       -b, --batch
              Don't prompt for confirmation when removing or unlogging (and assume yes to all questions).

       -e, --skip=PATH1:PATH2:...
              Colon-separated list of paths to skip when removing a package. Default is '' (all logged files are
              removed), unless variable remove_skip is set in the configuration file (type 'man porgrc' for more
              information).
              Shell wildcards are allowed in the PATHs. See PATH MATCHING for more details.

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.

FILE NAMES WITH SPACES

       As of version 0.3, porg accepts filenames with spaces when logging package installations.  Although  IMHO
       this  should  be seen as an improvement in general terms, it may cause problems when trying to feed 'porg
       -l' with a list of files separated by spaces. For example, the following command:

           echo /bin/foo /bin/bar | porg -l

       would try to log the file "/bin/foo /bin/bar" instead of logging /bin/foo and /bin/bar separately. To fix
       this,  one  may  use  newlines  to  separate  file names, and pass option -e to echo so it honours escape
       characters, like this:

            echo -e "/bin/foo\n/bin/bar" | porg -l

       or either write the list of files separated by newlines into a temporary file, and run:

            cat tmpfile | porg -l

EXAMPLES

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

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

       Note  that  in  this  example  the quotes are required to prevent porg to consider '-C' as a command line
       option.  The special end-of-option argument '--' may be used for the same purpose:

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

       Use single quotes if the command already contains double quotes:

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

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

           porg -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 -+:

           porg -lp+ foo-1.0 "install bar /bin/bar"

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

           porg -lp+ foo-1.0 "rm /bin/bar"

       would not remove the file /bin/bar from the log of foo-1.0.

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

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

       Both files, /bin/bar and /usr/bin/bar remain in the log. This is usually not the desired behaviour. As  a
       workaround one can join up both commands in one single porg run:

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

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

       To remove the package foo-3.3, keeping the files in /etc and the files ending with ".conf":

           porg -r -e '/etc:*.conf' foo-3.3

       You  have  installed  the  package  'boo-1.9'  in  prefix  '/opt/boo-1.9',  but  you  haven't  logged the
       installation with porg. No problem! Just create a log for it thusly:

           find /opt/boo-1.9 | porg -lp boo-1.9

       By the way, porg internally converts all package names to lower case; 'FooBar' and 'foobar' are the  same
       package.

BUGS

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

FILES

       /etc/porgrc - configuration file
       /var/lib/porg - default log directory

AUTHOR

       Written by David Ricart (http://porg.sourceforge.net)

SEE ALSO

       porgrc(5), porgball(8)