Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Slackware
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Management=== [[File:Slackware-mascot.svg|thumb|upright|The Slackware mascot: [[Tux (mascot)|Tux]] smoking a pipe]] Slackware's package management system, collectively known as pkgtools, can administer ({{Mono|pkgtool}}), install ({{Mono|installpkg}}), upgrade ({{Mono|upgradepkg}}), and remove ({{Mono|removepkg}}) packages from local sources. It can also uncompress ({{Mono|explodepkg}}) and create ({{Mono|makepkg}}) packages. The official tool to update Slackware over a network or the internet is {{Mono|slackpkg}}. It was originally developed by Piter Punk as an unofficial way to keep Slackware up-to-date. It was officially included in the main tree in Slackware 12.2,<ref>{{cite web|url=https://mirrors.slackware.com/slackware/slackware-12.2/CHANGES_AND_HINTS.TXT |format=TXT |title=This file documents the instructions for upgrading to Slackware 12.1, the packages added, removed, renamed, and/or split during the development cycle from Slackware 12.1 through 12.2, and some potential "gotchas" that users can avoid by arming themselves with a little knowledge. |website=Slackware.mirrors.tds.net |access-date=July 22, 2017}}</ref> having been included in {{Mono|extras/}} since Slackware 9.1.<ref name="CL9.1">{{cite web |url=http://slackware.cs.utah.edu/pub/slackware/slackware-9.1/ChangeLog.txt |format=TXT |title=Fixed incorrect type (int copy should be png_size_t copy) in png_inflate() : (fixes CVE-2011-3045). |website=Slackware.cs.utah.edu |access-date=July 22, 2017 |archive-date=February 25, 2021 |archive-url=https://web.archive.org/web/20210225080454/http://slackware.cs.utah.edu/pub/slackware/slackware-9.1/ChangeLog.txt |url-status=live }}</ref> When a package is upgraded, it will install the new package over the old one and then remove any files that no longer exist in the new package. Once a package has been installed with {{Mono|slackpkg}} it can be managed with {{Mono|pkgtool}} or other package management commands.<ref>{{Cite book |last=Kenlon |first=Seth |url=https://books.google.com/books?id=aD-zAwAAQBAJ&dq=%22Slackpkg%22+-wikipedia&pg=PA21 |title=Slackermedia |date=2012-09-01 |publisher=Lulu.com |isbn=978-0-9847842-2-6 |language=en}}</ref> When running {{Mono|upgradepkg}}, it only confirms that the version numbers are ''different'', thus allowing downgrading the package if desired. Slackware packages are [[tar (computing)|tarballs]] compressed using various methods. Starting with 13.0, most packages are compressed using [[XZ Utils|xz]] (based on the [[LZMA]] compression algorithm), utilizing the {{Mono|.txz}} [[filename extension]].<ref>{{cite web |url=https://mirrors.slackware.com/slackware/slackware-13.0/ChangeLog.txt |format=TXT |title=Fixes security issues including : External entity infinite loop DoS |website=Slackware.cs.utah.edu |access-date=July 22, 2017 |archive-date=April 7, 2018 |archive-url=https://web.archive.org/web/20180407120159/https://mirrors.slackware.com/slackware/slackware-13.0/ChangeLog.txt |url-status=live }}</ref> Prior to 13.0, packages were compressed using [[gzip]] (based on the [[DEFLATE]] compression algorithm), using the {{Mono|.tgz}} extension. Support for [[bzip2]] and [[lzip]] compression was also added, using the filename extensions {{Mono|.tbz}} and {{Mono|.tlz}} respectively, although these are not commonly used. Packages contain all the files for that program, as well as additional [[metadata]] files used by the package manager. The package tarball contains the full directory structure of the files and is meant to be extracted in the system's [[root directory]] during installation. The additional metadata files, located under the special {{Mono|install/}} directory within the tarball, usually include a {{Mono|slack-desc}} file, which is a specifically formatted text file that is read by the package manager to provide users with a description of the packaged software,<ref>{{cite web|url=http://www.slackwiki.com/Slack-desc|title=Slack-desc - SlackWiki|website=Slackwiki.com|access-date=July 22, 2017|archive-date=April 3, 2017|archive-url=https://web.archive.org/web/20170403213339/http://www.slackwiki.com/Slack-desc|url-status=live}}</ref> as well as a {{Mono|doinst.sh}} file, which is a post-unpacking [[shell script]] allowing creation of symbolic links, preserving permissions on startup files, proper handling of new configuration files, and any other aspects of installation that can not be implemented via the package's directory structure.<ref>{{cite web|url=http://www.slackwiki.com/Doinst.sh|title=Doinst.sh - SlackWiki|website=Slackwiki.com|access-date=July 22, 2017|archive-date=April 8, 2017|archive-url=https://web.archive.org/web/20170408070248/http://www.slackwiki.com/Doinst.sh|url-status=live}}</ref> During the development of 15.0, Volkerding introduced support for a {{Mono|douninst.sh}} uninstall script that can be launched when removing or upgrading a package.<ref name="CL-current" /> This allows package maintainers to run commands when a package is uninstalled. The package manager maintains a local database on the computer, stored in multiple folders. On 14.2 and older systems, the main database of installed packages was maintained in {{Mono|/var/log/}}, however, during the development of 15.0, Volkerding moved two of the directories to a dedicated location under {{Mono|/var/lib/pkgtools/}} to prevent accidental deletion when clearing system logs.<ref name="CL-current" /> Each Slackware installation will contain a {{Mono|packages/}} and {{Mono|scripts/}} directory in the main database location. The former is where each package installed will have a corresponding install log file (based on the package name, version, arch, and build) that contains the package size, both compressed and uncompressed, the software description, and the full path of all files that were installed.<ref>{{cite web|url=https://docs.slackware.com/slackware:package_management_hands_on#know_more_about_the_contents_of_a_package|title=slackware:package_management_hands_on - SlackDocs|website=Docs.slackware.com|access-date=July 22, 2017|archive-date=November 7, 2016|archive-url=https://web.archive.org/web/20161107191206/https://docs.slackware.com/slackware:package_management_hands_on#know_more_about_the_contents_of_a_package|url-status=live}}</ref> If the package contained an optional {{Mono|doinst.sh}} post-installation script, the contents of that script will be added to a file in the {{Mono|scripts/}} directory matching the filename of the corresponding package in the {{Mono|packages/}} directory, allowing the administrator to view the post-installation script at a future point. When a package is removed or upgraded, the old install logs and scripts found under {{Mono|packages/}} and {{Mono|scripts/}} are moved to {{Mono|removed_packages/}} and {{Mono|removed_scripts/}}, making it possible to review any previous packages and see when they were removed. These directories can be found in {{Mono|/var/log/}} on 14.2 and earlier, but were moved to {{Mono|/var/log/pkgtools/}} during the development of 15.0. On systems supporting the {{Mono|douninst.sh}} uninstall script, those scripts will be stored in the {{Mono|/var/lib/pkgtools/douninst.sh/}} directory while the package is installed. Once removed, the {{Mono|douninst.sh}} script will be moved to {{Mono|/var/log/pkgtools/removed_uninstall_scripts/}}.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)