wiki:Overview

Simplepkg Overview

A typical GNU/Linux distribution consists in setup, package and configuration management. Simplepkg aim is to create an unified workflow for all these three distinct operations:

Package workflow

Packages can be created with the following steps:

Mkbuild spec ---->----.
                       \
SlackBuild Model -->------> SlackBuild -> Binary Package -> Binary Repository

The tools we have to build this workflow are:

  • mkbuild: create SlackBuild scripts from model files, i.e, files that has the general spec about how to build a package for a given software.
  • createpkg: create packages from SlackBuilds, solving dependencies and maintaining a binary repository.

System setup workflow

Simplepkg also introduces the package installation workflow:

Package repository -->----> Automated package installation
                       /
Templates ------>-----'

The tools used for this part of the workflow are

  • simplaret: package retrieval/installation/upgrader tool and equivalent, but different, to tools like slackpkg, swaret and slapt-get.
  • mkjail: create slackware jails from custom templates.

Configuration revision workflow

And the config revision workflow:

Config file change -> Template -> Config file restoration

The tools used at this workflow are:

  • templatepkg: build and manage templates.
  • jail-commit: get changes made in slackware installations and apply them to templates (config update).
  • jail-update: restore slackware installations to have the configuration described in templates (config restoration).

Integrated workflow

All this three workflows are well integrated in simplepkg and the tools speak with each other, for example:

  • SlackBuilds created with mkbuild can be automatically available to createpkg.
  • Packages created with createpkg can be automatic available to simplaret.
  • Installed packages can be added to a template using templatepkg.
  • Templates managed by templatepkg are automatically available to mkjail.

Underlying logic

The logic behind simplepkg is that programs and configurations are stored amoung different repositories. Some simplepkg programs are able to read and write to some repositories, while other just read them:

  • mkbuild tool read and write mkbuild and SlackBuild trees.
  • createpkg reads SlackBuild, reads and writes packages trees.
  • simplaret read packages trees, reads and writes to the Slackware system tree.
  • templatepkg and jail-commit reads from the Slackware system tree and writes to a configuration template tree.
  • jail-update reads from from a configuration template tree and writes to a Slackware system tree.
  • mkjail reads from from a configuration template tree and writes a Slackware system tree.

Having tools that reads trees maintained by other tools makes all trees integrated and let the system administration to take place in a higher framework than compiling, installing, configuring by hand.

Architecture independency

Simplepkg is arch independent. That means that you can run it with standard Slackware as well as with Slamd64, Slackintosh or any other port of your choice.

Last modified 9 years ago Last modified on Jan 19, 2009, 12:58:34 PM