Extended Slackware


Last modified: Mon, 05 Sep 2005 16:46:26 +0200

What is pkgtools-ng?

pkgtools-ng is collection of utilities for Slackware's .tgz package system. It includes scripts for listing installed packages, searching packages containing given file, and downloading packages.

Note that pkgtools-ng is not intended to be single, monolithic tool like Swaret. Instead, I wish to make it as convenient to use in scripts as I can. This have one huge advantage over user-ready tools: you can easily write, using the same backend, multiple frontends: command line, curses or graphical. And, of course, you can safely use it in scripts running from crontab, for example.

What differs pkgtools-ng from other tools?

The most important (at least for me) thing is better handling version numbers. Most tools download package with just different version than the installed one, sometimes prefering packages from /patches over the /slackware directory. That isn't too smart, since you may have specified mirror with older Slackware version (another matter is that it isn't too smart, too), or you may have manually installed newer version from other repository, or even you may have installed your own package. No matter what is the reason, you don't want to install nor download older package (unless you really want to, of course).

Other important thing is what I mentioned two paragraphs earlier: usability in scritps. I'm writing it as a backend, not a ready tool for user. Of course user can use it by hand (as I'm using it now), but in some future I wish to write graphical frontend for pkgtools-ng (probably in Perl/Tk).

Why use pkgtools-ng?

Because it's small (about 150kB of miscellaneous useful shell scripts with manual pages for now), especially compared with Swaret (almost 300kB in single script).

Because it's going to be as fast as possible for small shell script (Swaret starts too slowly for me).

Because its requirements are quite small: you need just POSIX (actually, SUS) compliant shell (bash or ash will be sufficient), awk (gawk or mawk will do), grep and Wget or cURL for downloading packages.

Because it's going to be an alternative for original pkgtools. I want it to be fully compatible with pkgtools while providing some extensions, like automatic dependencies tracking and downloading or saving configuration files just before upgrading package (there are some packages which overwrite configs during installation).

Enough? Have I encouraged you to use pkgtools-ng? Then go and get it!

Engine by Dozzie. Awful design by Dozzie.