|[ Home | Screenshots | Documentation | Downloads | FAQ ]|
|28 June 2010||paco-2.0.9 released|
After the installation of a source package with "./configure && make && make install", one is usually left with having no idea of what it was installed and where it all went, making it difficult to uninstall the package in the future.
Paco was written to solve this problem in a quite simple fashion.
When installing a package from sources, paco wraps the "make install" command (or whatever command or group of commands are needed to install the files into the system), and saves installation information into a text database.
How does it perform this magic? It is accomplished using the LD_PRELOAD method, which preloads a shared library before installation using the environment variable LD_PRELOAD. During installation, this library catches the system calls that cause filesystem alterations (such as open, link, rename, ...), and logs the created files.
This method is very simple to use and it does not require a "pre-install" phase because it monitors processes while they run.
Since the preloaded library is used by the specific installation process, the created logs are not contaminated with any file created by other processes making filesystem alteration calls. Thus you can even use paco to track parallel installations.
Paco has many usage options for removing packages, looking at package files, file counts, sorting, missing files, etc. Run "paco -h" on the command line, or "man paco" for more information.
There's also an online version of the man page available.
The system-wide configuration file for paco is /etc/pacorc. Type "man pacorc" for more details.
Typical usage of paco is as follows:
Become superuser and install the package with paco:
See the man page for more information.
GPaco is the graphic interface of paco. GPaco uses and depends on the GTKMM library. It's not meant to be a replacement of paco, since it lacks some important features like logging package installations, but it allows for manipulating the installed packages in a more comfortable way.
GPaco requires GTKMM >= 2.12
Paco has been successfully tested on the following platforms:
|2.6||x86, AMD64, MIPS64, PPC64|
Paco does not work on systems in which the executables involved in the installation of the packages (mv, cp, install...) are statically linked against libc, like FreeBSD and OpenBSD.
The paco distribution provides the following auxiliary scripts. Except paco_bash_completion, which has to be installed by hand, all scripts are automatically installed, unless the option '--disable-scripts' is passed to configure.
Pacoball is a PERL script that creates binary tarballs (or "pacoballs") from packages that are logged in the paco database. It can be used also to reinstall packages by extracting the files from previously created pacoballs.
Superpaco is a shell script that installs Debian, RPM or Slackware binary packages without requiring dpkg, rpm or pkgtool, and optionally logs their installation with paco. To install RPM packages, cpio and ( rpm2cpio or rpmunpack ) are required.
A bourne shell script that converts RPM databases into paco ones. Either the whole local RPM database or only a given number of RPM packages may be converted.
Ocap is a PERL script that scans the system looking for all files that are not logged in the paco database. Ocap may be given one or more directories as arguments, thus limiting the search to those directories.
This file, written by Christian Schneider, provides bash completion support for paco, in systems that have programmable bash completion enabled. Look at the header of the file for more information.
Copyright © 2004-2012 David Ricart, <icnelis@*> (where * = gmail.com).
Paco is protected by the GNU General Public License. Look at the COPYING file for more details.