# Packages

Slackware's package management system utilizes .tgz/.txz tarballs as its standard package format. These tarballs are tar.gz/tar.xz archives which contain Slackware built binaries, support files, a description file and installation script. Although they can be unzipped and untarred like a normal archive, they are (usually) binary-only packages intended to be installed through Slackware's provided package management tools.

Information about a package is stored in two ways, in the filename of the package and a description file inside that package.

## Package Tools

See the respective manual pages for more information on each of the following commands.

pkgtool

installpkg

removepkg

explodepkg

makepkg

upgradepkg

## Slackware Package Layout

A typical Slackware package is laid out as such:

./
./install/doinst.sh
./install/slack-desc
[./usr/bin]
[./usr/lib]
[...]


The install directory as well as the files within it will be deleted after the installation of the package to the root install directory (usually '/'). The install directory is not necessarily required for the most basic packages but allows additional functionality: slack-desc contains the package description, and doinst.sh contains post-installation instructions such as creating symbolic links.

Every other file within the package is simply untarred (extracted) to the root directory. Most of these files are in standard locations.

There are other special files within packages:

usr/doc/<appname><version> All documentation included with the package (such as README, INSTALL, ChangeLog, docs/, etcetera) should be placed in this directory. Some of the files in this directory should be manually copied from the source archive, since Makefiles usually don't copy these documentation files to the package build tree.