Chapter 1. Introduction

Table of Contents

1. Requirements
2. libwww

LPMtool is a package management tool. At this time, LPMtool has been been developed and tested on Linux. LPMtool could probably be ported to other platforms with a minimum of effort, but at this time no porting effort has been made. LPMtool is capable of handling all package management chores for an entire Linux system by itself; but it can also play second fiddle alongside the existing system package manager.

LPMtool is not just a basic package manager, that merely keeps track of installed software. LPMtool includes tools for setting up web-based package repositories and publishing packages. LPMtool publishes an efficient package repository on a web server. The package repository may contain different versions of the same software package built for different Linux distributions, and LPMtool will download the appropriate version, for the Linux distribution LPMtool is running on.

LPMtool aims to simply the task of distributing and installing software packages. Consider a complicated application that uses additional software components from third party sources. LPMtool eliminates the dependency hell of pouring through the software's documentation looking for third party components the software depends on, and figuring out if you already have them installed, and if not where they must be downloaded from.

LPMtool downloads the required software components, automatically, after displaying the third party software's URL and asking for permission to download the required software from it (of course, the third party components must also be built with LPMtool, in order for this to work).

LPMtool keeps a list of known repositories where software was installed from. A single command checks if newer versions of existing software packages are available, downloads them, and installs them.

Other LPMtool features:

1. Requirements

LPMtool is written in C++, and uses the libwww, libbzip2, zlib, and GDBM libraries. libbzip2 must be installed to build LPMtool.


LPMtool requires the development zlib and bzip2 libraries. On most system the development libraries are placed in a separate packages, usually called zlib-devel and libbzip2-devel. They must be installed in addition to the base packages.

At this time, libwww is bundled together with LPMtool's source code. This version of libwww bundled with LPMtool includes a few fixes, and an updated build toolchain.

LPMtool uses libwww to download packages. This functionality is wrapped into an extra, optional shared library, This library can be uninstalled, removing the dependency on all the libwww baggage. Without it LPMtool will still be able to do basic package installations and removals.

LPMtool requires OpenSSL 0.9.7a, or later.

LPMtool's RPM compatibility scripts also require the RPM2 Perl module, which must itself be packaged and installed by RPM.

The optional Gnome graphical utility requires (besides the Gnome desktop) Python, PyGTK, and's desktop-file-utils package.


At press time, LPMtool runs only on a Linux kernel-based platform, but it shouldn't be too hard to adapt LPMtool to port to other POSIX-compatible platforms. There are only a couple of Linux-specific features used by LPMtool:

  • The lchown(2) is a Linux-specific system call.

  • The format of /proc/mounts is Linux-specific.