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)