More package management systems and tools

Home Hans Lunsing, e-mail, july 17, 2005



Universal
Autopackage
Autopackage is the distro neutral packaging framework for Linux systems.
  • Build packages that will install on many different distros
  • Packages can be interactive
  • Multiple front ends: best is automatically chosen so GUI users get a graphical front end, and command line users get a text based interface
  • Multiple language support (both in tools and for your own packages)
  • Automatically verifies and resolves dependancies no matter how the software was installed. This means you don't have to use autopackage for all your software, or even any of it, for packages to succesfully install.

Autopackage is currently in development. Version 0.2.1 has the basic architecture in place, with a basic terminal front end. It can build, install, verify and uninstall simple packages.
Here at OSnews is an introduction to Autopackage.

SmartPM

The Smart Package Manager project has the ambitious objective of creating smart and portable algorithms for solving adequately the problem of managing software upgrading and installation. This tool works in all major distributions, and will bring notable advantages over native tools currently in use (APT, APT-RPM, YUM, URPMI, etc).

Notice that this project is not a magical bridge between every distribution in the planet. Instead, this is a software offering better package management for these distributions, even when working with their own packages. Using multiple package managers at the same time (like rpm and dpkg) is possible, even though not the software goal at this moment. 

Here is an EWeek article about it.

GNUpdate GNUpdate is an open source, universal package management system. What does this mean? Well for starters, it will allow RedHat users to install debian packages, Debian users to install RedHat packages, and so on. It does this through the libpackman library, which provides a single API for accessing multiple package formats and package databases.

GNUpdate provides its own package database, composed of B+Trees, hashtables, and index files for the various methods of searching. It is constructed with expandability in mind. In several cases, the GNUpdate database is faster than even the RPM database.

Users may still use their existing package database for any operation, though some future features of GNUpdate will only work with its own package database. An existing package database can be converted to a GNUpdate package database by using gpkg.

GNUpdate is also capable of automatically updating packages without the need to download them manually. It can do this from a command line tool (gpkg), or by using the graphical GNUpdate package manager (gnupdate). It queries online package databases via the libpql (Package Query Language) library. This library provides a simple interface for querying package database servers, and can be used by any application to provide self-upgrading functionality.
EPM

EPM is a free UNIX software/file packaging program that generates distribution archives from a list of files. EPM can:

  • Generate portable script-based distribution packages complete with installation and removal scripts and standard install/uninstall GUIs.
  • Generate "native" distributions in AIX, BSD, Debian, HP-UX, IRIX, MacOS X, Red Hat, Slackware, Solaris, and Tru64 UNIX formats.
  • Provide a complete, cross-platform software distribution solution for your applications.

EPM is a product of "Easy Software Products.

Ximian Red Carpet
Automated Software Maintenance and Version Management.
Key features: Intuitive Channels Design, Automatic Process Management and Unique Cross-Platform Support.

Ximian Red Carpet is the leading software management solution for Linux desktops. The intuitive Red Carpet channel organization and automatic dependency and conflict resolution make it easy to install, update and maintain software over the Internet from Ximian, leading Linux distribution providers and a variety of independent software vendors. Specifically designed for organizations running mixed computing environments, Red Carpet handles a broad range of Linux distributions, including Red Hat, SuSE, Mandrake, Debian and more.
Zero Install

The Zero Install system makes software installation not merely easy but unnecessary. Users run their applications directly from the Internet from the software author's pages. Caching makes this as fast as running a normal application after the first time and allows off-line use.

Zero Install is a network filesystem from which you run applications. It makes aggressive use of a cache, meaning that once software is downloaded, it runs from the cache just as quickly as if you had installed it normally. Since everything is fetched on demand, you'll never be told that you're missing some library; it will be fetched automatically. Since the system is only a cache, you don't need root privileges to run software, making it more secure too.

RPM
Ezrpm This is a tool for resolving dependencies in RPM files, and installing all required files automatically, locating them in any of the target directories, or in a search path specified by the RPMPATH enviroment variable. At present, this is a command-line program, but work is underway on a GTK-based version as well. (Sinds november 1999 is er niet meer aan dit project gewerkt).
FISH FISH makes it possible to add a file that is available on your system to the RPM database. After this RPM is aware of the availability of this file. Now all packages that depend on it can be installed without any problem. Also the handling of dependencies is easy with FISH, because before a package is installed all dependent packages are automatically installed first. (Sinds 27.06.2002 is er niet meer aan het project gewerkt)
Grab (Greg's RPM Application Builder) GRAB is a RPM installation tool used for searching, downloading, and dependancy resolution of RPM packages residing on FTP servers. GRAB will read a config file and cache a database of all the available RPMS on the net.
OpenPkg

OpenPKG ! ...the world of cross-platform RPM-based Unix software packaging.

OpenPKG is a project of the Development Team from Cable & Wireless Deutschland's Internet Services division. The goal is the creation and maintainance of portable and easy to install software packages for use on the major Unix server platforms. Currently Solaris, Linux and FreeBSD are officially and fully supported. Additionally, Additionally, core functions are known to work on NetBSD, OpenBSD, Tru64 and HP-UX.

The unique OpenPKG architecture leverages proven technologies like Red Hat Package Manager (RPM) and OSSP and GNU components to establish a unified administration environment, independent of the underlying operating system. OpenPKG is completely self-contained and does not even need a preinstallation of RPM.

Purp Purp is an achronym for Pugo-RPM which is a tool for managing RPM-packages. Purp uses the ncurses-lib which means that it's textbased, and therefore can be used on most kinds of terminals.
Slackware packages
SWareT SWARET is an updating tool for the Slackware distribution. It is covered under the GPL license, and it has several features that make it unique (library dependency detection & rollback capability).
slackpkg Slackpkg is an automated tool for installing or upgrading of Slackware Linux Packages through a network. You can make a minimal installation of Slackware Linux and after that install additional stuff from a Slackware mirror.
Tarballs and other packages
Depot Depot is a software management tool, developed by the Andrew Systems Group at Carnegie Mellon University In Pittsburg, providing a simple yet flexible mechanism for maintaining third party and locally developed software in large heterogeneous computing environments. Depot integrates separately maintained software packages, known as collections, into a common directory hierarchy consisting of a union of all the collections. This common directory is defined as the software environment. A set of configuration options manages interactions and intersections between collections in the environment.
Encap Encap is a package management system for handling third-party package management on a Unix system. Through the magic of symbolic links, it allows you to install each package in its own directory, but still have everything accessible via the traditional location in /usr/local. The Encap Archive is sponsored by Campus Information Technologies and Educational Services of the University of Illinois at Urbana-Champaign.
Encap is used by the Nomad Linux distribution. Linux Journal published an article about it.
Graft Graft (one of Peters' Tools) provides a mechanism for managing multiple packages under a single directory hierarchy. It was inspired by both Depot (Carnegie Mellon University) and Stow (Bob Glickstein). n an effort to maximise the advantages and minimise the disadvantages, Depot, Stow and Graft adopt a similar philosophy:
Packages are installed in self contained directory trees and symbolic links from a common area are made to the package files.
Graft has been designed to use the best features of Depot, Stow and Encap while maintaining as simple a mechanism as possible. See the documentation for a comparison of Depot, Stow, Encap and Graft.
Stow GNU Stow is a program for managing the installation of software packages, keeping them separate (/usr/local/stow/emacs vs. /usr/local/stow/perl, for example) while making them appear to be installed in the same place (/usr/local).

Stow was inspired by Carnegie Mellon's Depot program, but is substantially simpler. Whereas Depot requires database files to keep things in sync, Stow stores no extra state between runs, so there's no danger (as there is in Depot) of mangling directories when file hierarchies don't match the database. Also unlike Depot, Stow will never delete any files, directories, or links that appear in a Stow directory (e.g., /usr/local/stow/emacs), so it's always possible to rebuild the target tree (e.g., /usr/local).

Linux Gazette has an article about Stow.
Source packages
GNU Source Installer

This web page is about GNU Source Installer (sourceinstall), a graphical tool which provides configuration, compilation, installation, tracking and removal of source packages. It works best with packages prepared by the developers using a recent version of the autotools.

For an experienced user, this sofware provides a way to centralize source installation, keep track of already installed packages and their relevant files, check installations for consistency, and have enhanced uninstallation.

For the novice but interested user, this software also offers a way to gain confidence with the command line (yes really), the file system, the traditional UNIX commands, and of course with common source configuration and installation procedures and options.

For GNU/Linux systems, this is also an alternative, distribution-independent way to install desired additional functionality.

Also see this article on Newsforge.

Portage Portage is probably Gentoo's most notable innovation in software management. With its high flexibility and enormous amount of features it is frequently seen as the best software management tool available for Linux.

Portage is completely written in Python and Bash and therefore fully visible to the users as both are scripting languages.

Most users will work with Portage through the emerge tool. This chapter is not meant to duplicate the information available from the emerge man page.

There are some GUI's for Portage, particularily Porthole (used by VidaLinux), Kentoo and Kuroo (both for KDE). LinuxReviews has reviews of Porthole and of Kentoo.
Toast toast is a simple, self-contained tool for downloading, building, installing, uninstalling and managing software packages. Unlike traditional package-management systems, toast is primarily intended to work directly with software distributed as source code, rather than in some precompiled or specialized binary format, such as RPM. Binary packages are also supported.