1PACO(8)                             System                             PACO(8)
2
3
4

NAME

6       paco - a source code package organizer
7

SYNOPSIS

9       paco [OPTIONS] <packages>
10       paco -l [OPTIONS] <package> <command>
11       paco -q <files>
12

DESCRIPTION

14       Paco  is  a  program to aid package management when installing packages
15       from source code.
16
17       When installing a package, paco can be used in log  mode  (with  option
18       -l) to wrap the installation command (e.g. "make install"), and log the
19       created  files.  By  default   the   log   is   stored   in   directory
20       '/var/log/paco'.
21
22       Once  some packages are installed and properly logged, paco can be used
23       in list mode, which is the default,  to  display  package  information.
24       Several options are provided to print the information in different for‐
25       mats.
26
27       There are also options to remove  packages,  query  for  the  owner  of
28       files, or maintain the package database.
29
30       Mandatory  arguments  to  long  options are mandatory for short options
31       too.
32
33       The special option -- forces and end of option-scanning. This  is  spe‐
34       cially useful when entering the install command in log mode.
35

GENERAL OPTIONS

37       -a, --all
38              Apply  the specified action to all logged packages. This doesn't
39              work with option -r.
40
41       -h, --help
42              Display a help message and exit.
43
44       -L, --logdir=DIR
45              Base log directory. Default is '/var/log/paco', unless  variable
46              LOGDIR  is  set in the configuration file (type 'man pacorc' for
47              more information).
48
49       -v, --verbose
50              Verbose output. -vv prints also debugging messages  (only  mean‐
51              ingful with option -l).
52
53       --version
54              Display version information and exit.
55

DATABASE MAINTENANCE OPTIONS

57       -u, --update
58              Synchronize  the  log  of the package with the current status of
59              the filesystem, calculating the size of  the  logged  files  and
60              checking whether they are missing.  If a file becomes compressed
61              or uncompressed (with bzip2 or gzip), it is  detected  as  well.
62              Use along with -a to update the whole database.
63
64       -U, --unlog
65              Remove the log of the package from the database.
66

GENERAL LIST OPTIONS

68       -b, --block-size=SIZE
69              Use  blocks of SIZE bytes for the sizes. SIZE may be an integer,
70              optionally followed by one of the following: k, K, m, M.
71
72       -k, --kilobytes
73              Like '--block-size=1k', or '--block-size=1024'.
74
75       --sort=WORD
76              Sort the list by WORD: When listing files, meaningful values for
77              WORD  are: 'name' and 'size'. When listing packages, WORD may be
78              also: 'date' (or 'time'), 'files', 'missing-files' or  'missing-
79              size'.
80
81       -R, --reverse
82              Reverse order while sorting.
83
84       -t, --total
85              Print totals at the bottom of the list.
86

PACKAGE LIST OPTIONS

88       -1, --one-column
89              List one package per line.
90
91       -F     Print the number of installed files.
92
93       -M     Print the number of missing files.
94
95       -C     Print the number of shared files (both installed and missing).
96
97       -d, --date
98              Show installation date (-dd shows the hour too).
99
100       -s, --size
101              Show  the  currently  installed  size  of each package; in human
102              readable format by default (e.g. 1.2M, 13k).
103
104       -n, --missing-size
105              Print the missing size of each package (= original size  -  cur‐
106              rent size).
107

FILE LIST OPTIONS

109       -f, --files
110              List currently installed files of the package.
111
112       -m, --missing-files
113              List  missing  files (those files removed after the installation
114              of the package).  -f and -m options can be used together.
115
116       -c, --shared
117              With -f and/or -m, list only the shared files (those files  also
118              logged by other packages).
119
120       -N, --non-shared
121              With  -f  and/or -m, list only the non shared files (those files
122              not logged by any other package).
123
124       -w, --who-shares
125              With -c, print the names of the packages that share each file.
126
127       -y, --symlinks
128              Print the contents of symbolic links.
129
130       -s, --size
131              Print the size of each file; in human readable format by default
132              (e.g. 1.2M, 13k).
133
134       -z, --no-package-name
135              Do not print the name of the package. Useful for scripts.
136

INFORMATION OPTIONS

138       Note: Information may be not available for all packages.
139
140       -i, --info
141              Print package information.
142
143       -o, --configure-options
144              Print the configure options the package was built with.
145
146       -q, --query, --owner
147              Query for the packages that own one or more files.
148

LOG OPTIONS

150       -l, --log
151              Enable  log  mode:  If  a shell command is given as an argument,
152              execute and monitor it, logging the created files, otherwise the
153              list of files to log is read from the standard input.
154              The  list  of  logged  files  is printed to the standard output,
155              unless any of -p or -D options is used, in which case is assumed
156              that a package is to be logged in the paco database.
157              When  a  shell comand is monitorized, paco returns the exit code
158              of that command.
159              See EXAMPLES below.
160
161       -p, --package=PKG
162              Specify the name of the package to log, which must begin with an
163              alphanumeric  character.  With  -v,  the list of logged files is
164              also printed to the standard error stream. With -vv, paco prints
165              detailed  information  about the install process. This holds for
166              option -D too.
167
168       -D, --dirname
169              Use the name of the current directory as the name of the package
170              to be logged.
171
172       -E, --exclude=PATH1:PATH2:...
173              Colon-separated  list  of paths to skip when logging. Default is
174              '/dev:/tmp:/usr/src:/media:/selinux:/sys:/usr/share/info/dir',
175              unless  variable  EXCLUDE is set in the configuration file (type
176              'man pacorc' for more information).
177              Shell wildcards are allowed in  the  PATHs.  See  PATH  MATCHING
178              below for more details.
179
180       -I, --include=PATH1:PATH2:...
181              Colon-separated  list  of paths to scan when logging. Default is
182              '/', unless variable INCLUDE is set in  the  configuration  file
183              (type 'man pacorc' for more information).
184              Shell  wildcards  are  allowed  in  the PATHs. See PATH MATCHING
185              below for more details.
186
187       --ignore-errors
188              Do not exit if the install command fails. This allows  for  log‐
189              ging  uncomplete  installations,  and cleanup the system upon an
190              installation failure. Errors are not ignored by default,  unless
191              variable LOG_IGNORE_ERRORS is set to 1 in the configuration file
192              (type 'man pacorc' for more information).
193
194       --log-missing
195              Log also the missing files (they are skipped  by  default).  See
196              EXAMPLES below.
197
198       -+, --append
199              With -p or -D, if the package is already logged, append the list
200              of files to its log.
201

REMOVE OPTIONS

203       -r, --remove
204              Remove a package, keeping the shared files and asking  for  con‐
205              firmation  by default. Compressed files (with gzip or bzip2) are
206              also removed. If the option is  doubled  (-rr),  or  all  logged
207              files  are successfully removed, the package is removed from the
208              database.
209
210       -B, --batch
211              Don't prompt for confirmation when removing (and assume  yes  to
212              all questions).
213
214       -e, --skip=PATH1:PATH2:...
215              Don't remove files in these paths.
216              Shell  wildcards  are  allowed  in  the PATHs. See PATH MATCHING
217              below for more details.
218
219       --remove-shared
220              Remove also the shared files.
221

PATH MATCHING

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

EXAMPLES

234       To  log  the  installation of the package 'foo-1.0', which is installed
235       with the command 'make -C src install':
236
237           paco -lp foo-1.0 "make -C src install"
238
239       Note that in this example the quotes are required to  prevent  paco  to
240       treat '-C' as a command line option.
241       Use single quotes if the command already contains double quotes:
242
243            paco -lp foo-1.0 'echo "hello world" > /var/log/foo.log'
244
245       The  special  end-of-option argument '--' may be used for the same pur‐
246       pose:
247
248           paco -lp foo-1.0 -- make -C src install
249
250       Alternatively, we can use the basename of the current directory as  the
251       name of the package to log, using the option -D instead of -p:
252
253           paco -lD "make install && make install.man"
254
255       If we have forgotten to install a file, it can be added to a previously
256       created log with the option -+:
257
258           paco -lp+ foo-1.0 "install foo /bin/foo"
259
260       Note that the option -+ cannot be used to remove a file from  the  log.
261       For instance, the following command:
262
263           paco -lp+ foo-1.0 "rm /bin/foo"
264
265       would not unlog the file /bin/foo from the log of foo-1.0, but it would
266       mark it as missing instead.
267
268       To avoid such behaviour it is sometimes  useful  to  join  up  composed
269       install  commands  into  one  single  command  and  run  paco once. For
270       instance, imagine that a package installs the  file  /bin/foo,  but  we
271       want it to be installed in /usr/bin/foo. If one runs this:
272
273           paco -lp foo-1.0 make install
274           paco -lp+ foo-1.0 "mv /bin/foo /usr/bin/foo"
275
276       Both  files,  /bin/foo and /usr/bin/foo remain in the log. /usr/bin/foo
277       is marked as installed, and /bin/foo is marked as missing. This is usu‐
278       ally  not  the  desired behaviour. As a workaround one can join up both
279       commands in one single paco run:
280
281           paco -lp foo-1.0 "make install && mv /bin/foo /usr/bin/foo"
282
283       In this case only /usr/bin/foo is logged.
284
285       The understand the meaning of the option  --log-missing,  consider  the
286       following example, where the file /foo/bar does not exist:
287
288           echo /foo/bar | paco --log-missing -lp foo
289
290       This  would  log  the file /foo/bar, even if it is missing. Without the
291       option --log-missing /foo/bar is skipped.
292
293       To remove all versions of the package foo, keeping the  files  in  /etc
294       and /root, and without asking for confirmation:
295
296           paco -r --batch -e /etc:/root foo
297
298       To  remove  the  package foo-3.3, keeping the files in /var/log and the
299       files ending with ".conf":
300
301           paco -r -e '/var/log:*.conf' foo-3.3
302
303       We have installed the package 'bubble-1.9' in prefix '/opt/bubble-1.9',
304       but we haven't logged the installation with paco. No problem! Just cre‐
305       ate a log for it thusly:
306
307           find /opt/bubble-1.9 | paco -lp bubble-1.9
308
309

BUGS

311       Due to LD_PRELOAD limitations, paco can't follow the trace of suid pro‐
312       grams.
313       For  the  same reason, paco does not work with programs that statically
314       link libc.
315

FILES

317       /etc/pacorc - configuration file
318       /var/log/paco - default log directory
319

WEB SITE

321       The latest version of paco should be always available at:
322            http://paco.sourceforge.net
323
325       Copyright (C) 2004-2009 David Rosal <davidrr@sourceforge.net>
326       This is free software; see the source for copying conditions.  There is
327       NO  warranty;  not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
328       PURPOSE.
329

SEE ALSO

331       pacorc(5), pacoball(8), superpaco(8), rpm2paco(8)
332
333
334
335paco-2.0.9                       28 June 2010                          PACO(8)
Impressum