-
Notifications
You must be signed in to change notification settings - Fork 8
slapt-get is an APT like system for Slackware package management.
License
jaos/slapt-get
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Copyright (C) 2003-2024 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. Getting started 6. Troubleshooting 7. 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 packages as tgz, tlz, tbz, and txz files * supports multiple package sources with the ability to assign priorities to each source. * 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, installation status, and the package changelog entry (where available). * 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 meta-data (see FAQ) supporting hard, soft, and conditional dependencies * package conflict resolution using slack-conflicts meta-data (see FAQ) * package suggestion 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 30 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. If gpgpme is installed, slapt-get can be built with support for signature verification with gnupg. gpgme requires libgpg-error. The unit tests in t/ require check (http://check.sourceforge.net/). 3. Installation You can install via meson or make (deprecated). * Meson meson setup build # or any dir of your choosing meson compile -C build # or `ninja -C build` for older meson releases meson install -C build # or `ninja -C build install` for older meson releases Meson/ninja supports `DESTDIR=/path meson install -C build` TIP: slapt-get.Slackbuild will create a Slackware package. Run with sudo or as a privileged user. * make (deprecated) make make install # as privileged user The Makefile honors DESTDIR. TIP: `make pkg` (as privileged user) will create a Slackware package. 4. slapt-getrc The slapt-getrc file consists currently of the following keys: SOURCE WORKINGDIR EXCLUDE Choose a mirror from the slackware.com mirror list at http://www.slackware.com/getslack/ * SOURCE must be a path to a valid Slackware release directory, or a third party source (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. Each SOURCE can be a assigned a priority level, by appending :{PRIORITY} to the source URI. For example: SOURCE={url}:DEFAULT is the default, lowest priority SOURCE={url}:OFFICIAL assigns more weight, used to denote official sources SOURCE={url}:PREFERRED even more weight to this source SOURCE={url}:CUSTOM highest priority, for your custom package source See the FAQ for more information. * WORKINGDIR will hold the package data and downloaded packages. This directory will be created automatically as permissions allow. * EXCLUDE is a comma separated list of packages 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$. See regex(7). 5. Getting started After installing and customizing the slapt-getrc configuration file, you need to run slapt-get with the --update option to download the package data available from all the package sources you specified within the slapt-getrc file. Once this is done, you can use the following options: * --upgrade to upgrade your installed packages. * --dist-upgrade to upgrade to a newer release (Please refer to the FAQ concerning dist-upgrade prior to running the command). * --search to locate packages of interest by the package name, disk set, or version. This supports POSIX and extended regular expressions. * --install to install a package. If the package is already installed it will be upgraded. * --list to see all the packages available from the package sources you specified within the slapt-getrc configuration file. * --installed to list all the packages you already have installed. * --remove to remove packages. * --show to show information about packages. * --clean to remove all downloaded packages from the local cache. * --autoclean to remove packages from local cache that are no longer available on the package sources specified in the slapt-getrc file. * --remove-obsolete along with --remove or --dist-upgrade will mark all non-downloadable packages for removal. 6. Troubleshooting Probably some bugs. Email bug reports to me: Jason Woodward <woodwardj at jaos dot org> or file a github issue: https://github.com/jaos/slapt-get/issues 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 web servers 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 fall back is not implemented (see FAQ #50). Also, any time the source url(s) are changed, slapt-get --update must be run to update the 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. Run the test suite and report any failing tests to github issues. See the FAQ for more info. 7. Thanks and contributions John Babiak <johnb at vectorlinux dot com> is the VectorLinux slapt-get maintainer. 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. Updates from Sergio Surkamp. 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. Angelos <angel dot microchip at gmail dot com> updated. 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 with updates by Sérgio Marques <smarquesp at gmail dot com> and Hugo Carvalho <hugokarvalho at hotmail dot com>. Vu Nguyen (vncasper at yahoo dot com) authored the Vietnamese translation. publikum at users dot sourceforge dot net authored the Slovenian translation. Verachten Bruno <gounthar at gmail dot com> authored the French translation. freerock <freerock at gmail dot com> contributed the DESTDIR support for the makefile. Erik Gyepes <depi at depi dot sk> contributed the Slovak translation. sin of the DeepStyle team <digitalhunger at gmail dot com> contributed the Russian and Unkrainian translations, with updates from <ru at li dot org>. Victor Keranov <victor_keranov at mail dot bg> contributed the Bulgarian translation. Kemas Antonius <kyantonius at kyantonius dot com> contributed the Indonesian translation. S_A <shin1 dot abe at nifty dot com> contributed the Japanese translation. Yang Jinsong <shannleon at gmail dot com> contributed the simplified Chinese translation. Bekir SONAT <corlinux at gmail dot com> contributed the Turkish translation. Reteaua PTM <admin at ptm dot ro> contributed the Romanian translation. Ken Milmore <ken dot milmore at googlemail dot com> contributed the initial source priority support. Anders F Bjorklund <afb at users dot sourceforge dot net> contributed the slapt_pkg_t_filelist() support. Vitaly Chernookiy <vitaly.v.ch at gmail dot com> contributed the initial cross compiling support Other translators credited within the translation source files.
About
slapt-get is an APT like system for Slackware package management.
Topics
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published