User Tools

Site Tools


lpm:00-main

Laconian Package Manager

lpm is a package manager that handles the controlled installation, update and removal of software packages.

It was written from scratch in C for use in LGL, but is in principle not tied to a specific distribution. It could also be used in any other Linux distribution or Unix-like operating system.

Like other well-known package managers such as dpkg or rpm, lpm ensures consistency by maintaining a local package repository containing information about every installed package:

  • name, version, architecture and description of the installed package
  • any dependencies of the package (other packages needed by it)
  • a list of all files installled by the package and their sha-1 checksums
  • some other less critical information such as installation date

lpm's native package format is called lpk. An lpk package basically consists of:

  • a package description, containing the name, version, architecture and all dependencies
  • a compressed archive of files to be installed by the package
  • optional shell scripts to be run before or after an installation, an upgrade or a removal

In order to find and retrieve packages for installation or upgrades, lpm relies on configurable and pluggable package catalogues, called lpc. Towards lpm, an lpc is implemented as a shared library plugin that implements the following functions:

  • providing lpm with a detailed list of all available packages
  • providing lpm with a function to retrieve any of the packages in the list

Each entry in the package list therefore contains all the already mentioned package information, as well as:

  • a path to retrieve the actual package
  • information about the package's size and checksum, in order to verify and cache retrieved packages.
lpm/00-main.txt · Last modified: by wikiadmin