Slackware package management, even if based on a common logic (software packages can be individually installed, listed, upgraded and removed) uses a method that reveals somehow the "older" nature of this distribution.
Slackware packages are divided in different sets, that group software according to various common points. In a distribution CDROM or download site, all the files are contained in directories with the relative set name:
A - The base system. Contains enough software to get up and running and have a text editor and basic communications programs.
AP - Various applications that do not require the X Window System.
D - Program development tools. Compilers, debuggers, interpreters, and man pages. It's all here.
DES - Includes the GNU libc crypt() function.
E - GNU Emacs. Yes, Emacs is so big it requires its own series.
F - FAQs, HOWTOs, and other miscellaneous documentation.
GTK - The GNOME desktop environment, GTK widget library, and the GIMP.
K - The source code for the Linux kernel.
KDE - The K Desktop Environment. An X environment which shares a lot of look-and-feel features with the MacOS and Windows. The Qt widget library is also in this series, as KDE requires it to function.
N - Networking programs. Daemons, mail programs, telnet, news readers, and so on.
T - teTeX document formatting system.
TCL - The Tool Command Language, Tk, TclX, and TkDesk.
U - Contains packages for programs designed specifically for and that will only run on UltraSPARC systems.
X - The base X Window System.
XAP - X applications that are not part of a major desktop environment. For example Ghostscript and Netscape.
XD - X11 program development. Libraries, server link kit, and PEX support.
XV - XView libraries, the OpenLook Virtual and Non-Virtual window managers, and various other XView applications.
Y - Games (the BSD games collection, Sasteroids, Koules, and Lizards).
Packages are simple tar.gz files (generally with suffix .tgz) that are meant to be uncompacted in the root directory of the filesystem. Each pack's file and directory structure, in fact, reflexes exactly the positions on the system of the files to be installed. In a .tgz, beside the system directories, there is a special install/
subdirectory with the description of the package and the scripts to be executed at its installation.
An out of the box Slackware installation provides some tools to manage packages:
PKGTOOL is a menu driven program that provides a somehow simple interface to package installation, view and removal. To install one or more packages you just need to specify the location of the directory containing the .tgz files.
INSTALLPKG REMOVEPKG UPGRADEPKG are the command line tools used to install, remove or upgrage a package. A database of installed software is kept in the /var/log/packages/
directory, here there is a file for each package with its description and the list of what has been installed. A list of the eventual post-installation scripts is in /var/log/packages/scripts/
. If you want to try the installation on a test directory, change the value of the ROOT environment variable before launching installpkg (this is what is automatically done during Slackware's installation).
The upgrade procedure first installs the new package, writing its file on the system, then removes any file from the older package that is not present in the new one. It's always better to make a copy of edited configuration files.
MAKEPKG RPM2TARGZ the first one can be used to create a tgz package, the second one attempts to create a tgz from a rpm file.
Besides these standard tools it is possibile to download more effective utilities to manage and update the software:
SWARET is one of the most knows tools to manage manual or unattended system's updates. It reads configuration and repository URLS from /etc/swaret.conf
, it stores the downloaded tgzs in /var/swaret/
and keeks a log of its activities in /var/log/swaret
SLAPT-GET is the Slack's way to implement Debian's apt system for packages. Keeping the use of the native tools (installpkg, upgradepkg, removepkg), it handles recursive dependencies, partial downloads, lists of installable software and multiple sources with different protocols. It keeps configuration files in /etc/slapt-get/
and stores downloaded data in /var/slapt-get/
.
How software is installed, updated and managed on different Linux distributions
OS Guide: SlackWareThe OpenSkills Guide for experienced System Administrators: SlackWare