slapt-get is an APT like system for Slackware package management. It allows one to search slackware mirrors and third party sources for packages, compare them with installed packages, install new packages, or upgrade all installed packages. Great for scripting as well.

Copyright (C) 2004 Jason Woodward <woodwardj at jaos dot org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Library General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Table of Contents:
1. Features
2. Requirements
3. Installation
4. slapt-getrc
5. Troubleshooting
6. Thanks and contributions
1. Features
slapt-get tries to emulate Debian's apt-get as closely as possible.
* uses native Slackware tools (installpkg, upgradepkg, and removepkg)
* supports multiple package sources (including linuxpackages.net)
* cache data concerning packages and updates from package sources
* supports sources from ftp, ftps, http, https, file:/// and more (libcurl)
* resumes broken downloads and will verify package integrity with MD5
checksum
* show packages that are available (from cached data) and installed
* search package listing using POSIX and extended regular expressions
by package name, location, and description
* retrieve, install, and remove packages by name or by specific version
* retrieve and apply updates
* upgrade from one slackware release to another in a few simple steps
* show description of packages, including mirror location, version, size,
dependencies (where available), conflicts (where available), suggestions
(where available), description, and installation status
* exclude (hold) packages from upgrades, by name or by regular expression
* transaction engine for install, remove, and upgrades, reporting concise
information on what is to be done, ensuring each step happens correctly
* "compare package version" algorithm to prevent downgrades
* recursive dependency resolution using slack-required metadata (see FAQ)
supporting hard, soft, and conditional dependencies
* package conflict resolution using slack-conflicts metadata (see FAQ)
* package sugggestion support for complimentary packages (see FAQ)
* Package data download robustness, only writing changes if all sources
download successfully as well as only downloading those sources that
have changed since the last download
* i18n support via GNU gettext with over 13 language translations
* extremely fast and easy to script with
2. Requirements
slapt-get requires Slackware-9.0 or better, due to glibc and openssl
updates. You can also use slapt-get under Slackware 8.1 if you
upgrade glibc-solibs and openssl from Slackware 9.0, or if slapt-get
is built statically linked.
The following packages are required to build slapt-get from source:
make, gcc, curl, glibc, kernel-headers, binutils, zlib, gettext-tools,
and openssl
3. Installation
See INSTALL.
4. slapt-getrc
The slapt-getrc file consists currently of the following keys:
SOURCE
WORKINGDIR
EXCLUDE
Choose mirror from slackware.com mirror list:
lynx -source http://www.slackware.com/getslack/|grep -i href \
|awk -F "HREF=" '{print $2}'|cut -f2 -d'"'
* SOURCE must be a path to a valid slackware release directory,
or a source such as linuxpackages.net (see example within rc).
All that is required is the PACKAGES.TXT (see FAQ entry #17)
and CHECKSUMS.md5. Multiple sources can be defined.
NOTE: It is not recommended to mix 3rd party package sources
with the official on production servers. Sometimes
third party sources contain the same packages as the
official mirrors. Third party packages might not be
as rigorously tested as official packages.
* WORKINGDIR will hold the package data and downloaded packages.
This directory will have to be created.
* EXCLUDE is a comma seperated list of pkgs you want excluded from
updating. This can be the package name, or a extended POSIX regex.
For example, to exclude dropline, use .*-[0-9]dl$
5. Troubleshooting
Probably lots of bugs. email bug reports to me:
Jason Woodward <woodwardj at jaos dot org>
or directly to the mailing lists:
slapt-get-user at software dot jaos dot org
slapt-get-devel at software dot jaos dot org
Make sure --update is ran once initially and the data file (package_data)
is good.
Some mirrors are incomplete and the downloaded file is actually html
specifying the webservers error message. MD5 checking has been
incorporated in order to alleviate this problem.
Please do not add redundant mirror locations to the same release. Mirror
fallback is not implemented. Also, any time the source url(s) are
changed, slapt-get --update must be run to update local cache.
If you are getting segfaults, add -g to CFLAGS in the Makefile, change the
DEBUG define in src/main.h to 1, and rebuild ( make clean && make ). Run
in gdb and let me know via email where the fault happens.
See the FAQ for more info.
6. Thanks and contributions
Big thanks to Dan Barber <danb at mojolin dot com> for his insight and help
with documentation suggestions and feature requests.
Thanks to James Simmons over at linuxpackages.net for his interest, support,
and ideas.
nixon <nixon at klub dot chip dot pl> and simon
<ssiimm at poczta dot onet dot pl> authored the Polish translation. With
updates by Paul Blazejowski <paulb at blazebox dot homeip dot net>, and
Piotr Simon <sajmon at tenboard dot com>.
Arnaldo de Moraes Pereira <arnaldo at sp-dhn dot com dot br> authored the
Brazilian Portuguese translation.
Michiel H. <myself at mhil dot net> authored the Dutch translation.
Joran Kvalvaag <jk at nerdworks dot org> authored the Norwegian translation.
Ruben <ruben at snpp dot com dot ar> authored the Latin American and Spanish
translations.
Francesco Gigli <jaramir at slack dot it> authored the Italian translation.
Joel Bjurman <ypolt at lediga dot st> authored the Swedish translation.
Savvas Efstratiadis <pigouinos at mailworks dot org> authored the Greek
translation.
Niklas Volbers <mithrandir42 at web dot de> authored the German translation.
Oto Petrik <oto.petrik at centrum dot cz > authored the Czech translation.
Piotr Simon <sajmon at tenboard dot com> created the HTML version of the FAQ.
Miguel Santinho <info at Simplicidade dot com> authored the Portuguese_Portugal
translation.