r911 - trunk

tushar at linuxfromscratch.org tushar at linuxfromscratch.org
Sun Nov 28 15:58:54 PST 2004


Author: tushar
Date: 2004-11-28 16:58:54 -0700 (Sun, 28 Nov 2004)
New Revision: 911

Modified:
   trunk/paco.txt
Log:
Updated Hint: paco

Modified: trunk/paco.txt
===================================================================
--- trunk/paco.txt	2004-11-23 06:38:02 UTC (rev 910)
+++ trunk/paco.txt	2004-11-28 23:58:54 UTC (rev 911)
@@ -1,22 +1,22 @@
-AUTHOR:   David Rosal <davidrr at menta.net>
+AUTHOR:   David Rosal <davidrr at users.sourceforge.net>
 
-DATE:     2004-09-03
+DATE:     2004-11-28
 
 LICENSE:  GNU Free Documentation License Version 1.2
 
 SYNOPSIS: Paco - Source code package manager
 
 DESCRIPTION:
-Yet another try to provide a package manager for source-code-based systems,
-such as LFS. But paco comes with some nice features, such as a (optional)
-GTK+ graphic interface, and the use of the LD_PRELOAD method to keep track
+Yet another try to provide a package manager for source code based systems,
+such as LFS. But paco comes with some nice features, such as an optional
+GTK graphic interface, and the use of the LD_PRELOAD method to keep track
 of the files installed by the packages.
 
 PREREQUISITES:
-  * For the (optional) GUI: gtk+ >= 2.0 and pkg-config.
+  * For the (optional) GUI: GTK+>=2.0 and pkg-config.
  
 PRIMARY URL:
-  The latest version of this hint and the sources of paco can be found in:
+  The latest version of this hint and the sources of paco can be found at:
   	--> http://paco.sourceforge.net
 
 
@@ -43,19 +43,25 @@
     timestamp other than the current time, those files will not be
     tracked by the package manager. Also, this scheme can only be used
     when one package is installed at a time. The logs are not reliable
-    if two packages are being installed on two different consoles. 
-	
+    if two packages are being installed on two different consoles. 	
 
-I also tried installwatch, which is based on the LD_PRELOAD method, which I
-find better: To get the list of installed files, a library is loaded before
-installation. During installation, this library tracks the system calls that
-modify the filesystem. For this approach to work, all the executables need
-to be dymanically linked without the suid or sgid bit.
-But though installwatch is very efficient, it finally writes the list in a
-non-human readable format; and it stops there, without providing any feature
-to manage the packages after installation.
+I also tried CheckInstall, which is widely used by the Linux community, and
+based on the LD_PRELOAD method, which I find better. From the BLFS book:
 
+    In this approach, a library is preloaded before installation. During
+    installation, this library tracks the packages that are being installed
+    by attaching itself to various executables such as cp, install, mv and
+    tracking the system calls that modify the filesystem. For this approach
+    to work, all the executables need to be dymanically linked without the
+    suid or sgid bit. Preloading the library may cause some unwanted
+    side-effects during installation; hence do perform some tests to ensure
+    that the package manager does not break anything and logs all the
+    appropriate files.
 
+But though CheckInstall is very efficient, it finally depends on the package
+manager of the host system (rpm, dpkg or installpkg), so it doesn't fit the
+needs of the LFS community.
+
 So finally I decided to put my fingers on the keyboard, and write a package
 manager with the pros of the above and without their cons. And the result is
 paco (pacKAGE oRGANIZER).
@@ -65,14 +71,16 @@
 ========
 Paco works mainly in two modes:
 
-In log mode it keeps track of a package installation (though it can be used
+In log mode, it keeps track of a package installation (though it can be used
 to follow the trace of any command or script), and generates a list of all
 installed files.
 
-Paco can be run also in list, query or remove modes to perform some basic
-operations on the installed packages, by retrieving information from their
-logs.
+In list mode, which is the default, paco retrieves information from the
+generated logs and displays it in a friendly format.
 
+Paco can be used also to remove a package, query for the owner of files or
+print extended information about the packages.
+
 The output of 'paco --help' follows:
 
 +-----
@@ -82,74 +90,98 @@
 |   paco -l [OPTIONS] <command>
 | 
 | General options:
-|   -g, --gui               Run the gui.
-|   -L, --logdir=DIR        Read/write logs from/to directory DIR.
-|   -q, --query             Query for the owner(s) of <files>.
-|   -u, --update            Update the package database.
-|   -v, --verbose           Verbose output.
-|   -V, --version           Display version information.
-|   -?, --help              Display usage information.
+|   -i, --info             Print extended package information, if available.
+|   -L, --logdir=DIR       Read/write logs from/to directory DIR.
+|   -x, --expand           Expand the package names given by the command line.
+|   -a, --all              List/update/unlog all logged packages.
+|   -q, --query            Query for the owners of files.
+|   -u, --update           Update the log of the package.
+|   -U, --unlog            Remove the log of the package.
+|   -v, --verbose          Verbose output.
+|   -V, --version          Display version information.
+|   -?, --help             Display usage information.
 | 
 | List options:
-|   -1, --one-column        List one package per line.
-|   -B, --block-size=SIZE   Show sizes in SIZE-byte blocks.
-|   -b, --bytes             Show sizes in 1-byte blocks.
-|   -k, --kilobytes         Show sizes in 1024-byte blocks.
-|   -h, --human-readable    Show sizes in human readable format (e.g. 1.2M, 7k).
-|   -d, --date              Show installation date.
-|   -D, --date-and-hour     Show date and hour of installation.
-|   -f, --list-installed    List installed files.
-|   -m, --list-missing      List missing files.
-|   -F, --installed         Print the number of installed files.
-|   -M, --missing           Print the number of missing files.
-|   -s, --sort=WORD         Sort by WORD: size, date, name, installed or missing.
-|   -R, --reverse           Reverse order while sorting.
-|   -t, --total             Print the total.
+|   -1, --one-column       List one package per line.
+|   -b, --block-size=SIZE  Show sizes in SIZE-byte blocks.
+|   -k, --kilobytes        Show sizes in 1024-byte blocks.
+|   -d, --date             Show installation date (-dd shows the hour too).
+|   -f, --files            List installed files.
+|   -m, --missing          List missing files.
+|   -F                     Print the number of installed files.
+|   -M                     Print the number of missing files.
+|   -s, --size             Show the disk usage of each package or file.
+|       --sort=WORD        Sort by WORD: size, date, name, files or missing.
+|   -R, --reverse          Reverse order while sorting.
+|   -t, --total            Print the total.
+|   -y, --symlinks         With -f: Print the contents of symbolic links.
+|   -z, --no-package-name  With -f: Don't print the name of the package.
 | 
 | Remove options:
-|   -r, --remove            Remove the (non shared) files of a package.
-|       --remove-shared     With -r: Remove also the shared files.
-|       --batch             With -r: Don't ask for confirmation when removing.
-|   -e, --remove-empty-dir  With -r: Remove empty directories.
-|   -U, --unlog             Remove the log of the package.
+|   -r, --remove           Remove the (non shared) files of the package.
+|       --remove-shared    Remove also the shared files.
+|       --batch            Don't ask for confirmation when removing.
+|   -e, --empty-dirs       Remove empty directories.
+|   -K, --keep-log         Don't remove the log of the package.
 | 
 | Log options:
-|   -l, --log               Log mode.
-|   -p, --package=PKG       Name of the package to log.
-|   -a, --append            With '-p': If the package is already logged, append
-|                            the list of files at the end of the log.
-|   -I, --include=PATH:...  Colon-separated list of paths to scan.
-|   -E, --exclude=PATH:...  Colon-separated list of paths to skip.
+|   -l, --log              Log mode.
+|   -p, --package=PKG      Name of the package to log.
+|   -+, --append           With '-p': If the package is already logged, append
+|                           the list of files to the log.
+|   -I, --include=DIR:...  Colon-separated list of directories to scan.
+|   -E, --exclude=DIR:...  Colon-separated list of directories to skip.
 | 
 | Note: The list mode is enabled by default.
 +-----
 
 
-EXAMPLES
+2. Gpaco
 ========
-1) To log the installation of the package 'foobar-1.0', wich is installed by
+Gpaco is a GTK frontend for paco.
+Its aim is not to replace paco, since it does not provide all of its
+functionalities. Currently supported features are: listing packages or
+files, update the database, query package information and remove packages.
+Gpaco can't log a package installation or query for the owner of files.
+Paco should be used instead.
+
+
+3. Examples
+===========
+1) To log the installation of the package 'boofar-1.0', wich is installed by
    'make -C src install':
     
-        paco -lp foobar-1.0 "make -C src install"
+        paco -lp boofar-1.0 "make -C src install"
 
+   This will create a log file named 'boofar-1.0' in the log directory, with
+   the list of all installed files.
    (Note that in this example the quotes are required in order to prevent
    paco to parse '-C' as a command line option).
 
-2) To list the missing files of the package 'foobar-1.0':
-	
-        paco -fM foobar-1.0
+   If we have forgotten to install a file, it can be added to the log with:
 
-3) To print a list of all logged packages sorted by size, with the sizes in
-   human readable format, and the installation dates:
-	
-        paco -hds size
+        paco -lp+ boofar-1.0 install boofile /usr/bin/boofile
+   
+2) To get a list of all files installed by the package:
 
+        paco -f boofar-1.0
+
+3) To remove all versions of the package boofar:
+
+        paco -rx boofar
+    
 4) To print the owners of each file in directory /bin:
 
         paco -q /bin/*
 
 
 CHANGELOG:
+[2004-11-28]
+  * Changed the email address.
+  * Upgraded to paco-1.7.1
+  * Slight changes in Introduction, Usage and Examples.
+  * Added gpaco description.
+
 [2004-09-03]
   * Almost everything changed.
 
@@ -160,3 +192,4 @@
   
 [2004-06-08]
   * Initial hint.
+




More information about the hints mailing list