Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Slackware
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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/}}.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Slackware
(section)
Add topic