We are still actively working on the spam issue.

Difference between revisions of "Slackware"

From InstallGentoo Wiki
Jump to: navigation, search
(Derivatives)
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[File:Slackware.png|thumb|Slackware logo]]
 
[[File:Slackware.png|thumb|Slackware logo]]
'''Slackware Linux''' is a [[GNU/Linux]] distribution known for its age and stability. Slackware was created by Patrick Volkerding in 1993.  It was the first working Linux distribution, and is the oldest distribution still being maintained.  Volkerding is the sole maintainer of the project.
+
'''Slackware Linux''' is a [[GNU/Linux]] distribution known for its age and stability. Slackware was created by Patrick Volkerding in 1993 out of patches and bugfixes he had to make for SLS in order to install it in his university's computer lab.  It was one of the first stable, complete Linux distributions, which made it extremely popular in the 1990s, and it is the oldest distribution still being maintained.
  
 
Slackware's main goal is simplicity.  Although not as idiot-friendly as some distributions, Slackware is exceedingly easy for a more capable user to modify and tweak to suit their needs.
 
Slackware's main goal is simplicity.  Although not as idiot-friendly as some distributions, Slackware is exceedingly easy for a more capable user to modify and tweak to suit their needs.
 +
 +
The name of Slackware derives from "Slack", a central principle of the parody religion [[The Church of the SubGenius]]. Patrick Volkerding is an ordained minister in the Church, making it the only operating system approved by J.R. "Bob" Dobbs, Living Slack Master and High Epopt of the Church of the SubGenius. The pipe-smoking [[Tux]] and pipe-shaped line present in Slackware logos are references to "Bob"'s iconic pipe.
 +
 +
==Why?==
 +
 +
* Stable - both in terms of not crashing and not changing its core design in decades
 +
* Simple - few moving parts, nearly everything done through shell scripts and text files
 +
* Sensible - sane defaults, few restrictions, things work the way you you expect
 +
* Slackful - by offering stability, encouraging simplicity, and following sensible design principles, it frees the enlightened user from having to worry about the OS and fills him with Slack
  
 
==Features==
 
==Features==
  
Slackware is built primarily from stable packages and has a goal of always providing a stable and usable system out of the box and keeping it that way through conservative updates. It uses a modified SystemV with some BSD components for init. The GUI uses the [[X Window System]].
+
Slackware is built primarily from stable vanilla packages and has a goal of always providing a stable and usable system out of the box and keeping it that way through conservative updates. It does not have a fixed release schedule; "stable" releases are announced whenever Patrick decides major changes and updates have been sufficiently tested. Slackware 14.2 was released 06/2016, two and a half years after 14.1 (11/2013). For people who don't like to wait, Slackware has a -current branch that updates packages as they are being tested for stable release and stays rather fresh.
 +
 
 +
Patrick is the BDFL of Slackware and he makes all decisions about what to include in each release. He is assisted by about half a dozen official developers who test and maintain each release. The Slackware team takes a very conservative approach when it comes to adding new features. 12.2 (12/2008) was the first version to have a "package manager" in the common sense of the term. 13.0 (08/2009) was the first release with an official 64-bit version. Previously there had been an unofficial third-party port but Patrick had neither the hardware nor the interest in testing and maintaining one himself. Multilib packages are not provided on a stock 64-bit system but can be installed from an "unofficial" repo maintained by one of the core developers. PulseAudio was added in 14.2 (06/2016), and only as a required dependency for the new version of bluez. Patrick has expressed dislike for systemd, and is unlikely to ever be adopted by Slackware. In the same interview, he showed ambivalence to Wayland, hinting that it might be offered as an option in Slackware 3-5 years after it has become standard for all other distros.
 +
 
 +
Slackware is loved by its users for strict adherence to the KISS principle. It is designed to have few moving parts which makes it very dependable and simple to operate. Virtually all system maintenance is done through shell scripts that use comfy blue-background ncurses dialogs and menus. All the configuration files and startup scripts are thoroughly commented and easy to follow. New users with a solid understanding of *nix fundamentals will find Slackware remarkably intuitive, and even those with no prior Linux experience will have no problem learning how the pieces fit together as long as they're not whiny retarded babbies that need to >>>/v/
 +
 
 +
===Installation===
 +
 
 +
The Slackware install DVD contains all the packages considered part of the "full" installation (7+ GB as of this writing), and optional build scripts to install several popular non-free programs such as Google Botnet, Flash, and Java. If you still have a 64MB flash drive from 1998, you can download the USB installation image, which only contains the installation environment (you would need either an internet connection on your target machine or a copy of the Slackware package tree on some local media). The menu-driven installer is simple enough for a beginner to just hit enter through and straightforward enough for those who want to customize their install to do so without difficulty.
 +
 
 +
Slackware divides official packages into groups (series): A is for basic required system components, AP is for non-essential console applications, D is for development, N is for networking, X is for X, etc. Some groups only contain one package -- E(macs) and T(eX) -- so that it is simple to exclude these controversial programs if you find them objectionable. It is recommended practice to always do a "full" install (install all packages in the selected groups) but if you want to manually select individual packages and risk leaving out something important, Slackware won't stop you.
 +
 
 +
Post-install system configuration also very straightforward. If you've never used LILO before, it can be somewhat intimidating, and doing something stupid will make your computer very hard to boot. If you're unsure, just let it configure automatically and write that fucker to the MBR.
 +
 
 +
Users coming from other distros that set up fancy logical volumes and encrypted partitions and GRUB version 2 by default might be complaining about the apparent lack of these features in Slackware. Trust me, it's all there. If you really need LVM, encryption, or GRUB, set it up yourself. It's not hard.
 +
 
 +
===Configuration===
 +
 
 +
Slackware uses a hybrid init system that combines the best features of BSD and SysV. Runlevels are associated scripts are defined in <code>/etc/inittab</code>. Slackware uses runlevel 3 for console login and runlevel 4 for graphical login. Startup and shutdown scripts are located in <code>/etc/rc.d/</code>, as are scripts for starting and stopping system services. Enabling or disabling automatic startup for a service is as simple as setting the execute permission for the script. Slackware initialization scripts tend to spit useful information out to the console and are very well commented, making it simple to diagnose and solve any (extremely rare) issues that may occur, or just modify the startup sequence if you feel like potentially breaking your system. Custom startup and shutdown actions can be added to <code>/etc/rc.d/rc.local</code> and <code>/etc/rc.d/rc.local_shutdown</code>.
 +
 
 +
Most of the configuration menus from the installer can be rerun later. Like everything else in Slackware, they are dialog shell scripts with names like setconsolefont, timeconfig, xwmconfig, liloconfig, etc.
 +
 
 +
===Packages===
 +
 
 +
Slackware includes a lot of software by default. With a full install, you get 2 DEs, 4 WMs, development tools for nearly all major languages, web, ftp, and mail servers, a variety of both graphical and console audio/video players, text and document editors, the GIMP, and so on. This is considered a Good Thing. Packages that don't ship with the official distribution can usually be found compiled in a handful of repositories, or as build scripts, called SlackBuilds, most of which are on SlackBuilds.org, the unofficial "official" SlackBuild repo.
 +
 
 +
Package management is provided by the [[Package manager #slackpkg|slackpkg]] utility. To make slackpkg work with third-party/community repos, install the slackpkg+ plugin and set up your repos in <code>/etc/slackpkg/slackpkgplus.conf</code>. Slackpkg does not have "dependency resolution" because a package manager that automatically resolves and enforces versioned dependencies is inherently not simple, if one was made it would eventually lead to a situation where dependency conflicts prevented the user from doing what they want, or make rollback a nightmare, or create any of the problems found with other package management systems. It is the opinion of Patrick, and all Slackware users, that the tiny bit of extra effort needed to type in "slackpkg info [package]" for the rare dependency you might encounter is a small price to pay for the simplicity and freedom of using slackpkg.
 +
 
 +
Building packages can be done by running a SlackBuild (possibly first downloading all required source files) or using the third-party build tool <code>sbopkg</code>. Unlike slackpkg, sbopkg actually ''does'' have automatic dependency resolution if you use the included sqg (sbopkg queue generator), which will generate a build queue for any package with the dependencies all in the right order. sbopkg can either be given arguments from the command line or you can use its comfy menu-driven interface. SlackBuilds, info files, and build options for each package can be modified and saved if you want to include some custom patches or use a different version from the one in the repo.
 +
 
 +
Packages that were downloaded or built manually can be installed using <code>installpkg</code>, <code>upgradepkg</code>, or <code>pkgtool</code> if you like menus.
 +
 
 +
==Common Misconceptions==
 +
 
 +
===Slackware is too advanced for beginners===
 +
 
 +
If you want to use an OS without understanding it, you should go back to Windows or fagOS. If you want to be able to understand the OS you use, Slackware is arguably the best choice because it neither hides the internal workings of the system nor adds complexity to them. Moreover, it has very sane and sensible defaults that let you set up a working system with minimal knowledge of Linux/Unix and a very good guide for learning basic system use and administration.
 +
 
 +
===Slackware is dead===
 +
 
 +
May have been a more credible argument in 2015, when it had been almost 2 years since the last release. In December 2015 the dev team announced that the -current branch at that time was effectively the pre-release for 14.2, which was finally released 6 months later with many upgrades and improvements.
 +
 
 +
No matter how long it takes for "stable" numbered releases, Slackware-current has always been kept up to date and offers a mostly stable rolling release for people who want regular kernel updates. It is the oldest surviving Linux distribution, first released on 07/17/1993, making it 5 months older than [[Debian]], and unlike Debian, it is not a socialist clusterfuck ruled by committees, governed by social contracts, that uses an absolutely ghastly package manager and is dependent on systemd.
 +
 
 +
===Slackware has no package management===
 +
 
 +
Slackware has the best, simplest, most flexible package manager of any major distro.
 +
 
 +
====B-but muh dependency resolution====
 +
 
 +
If you absolutely can't live without having all the dependencies for a package recursively listed for your convenience and you're too stupid to figure out how to write a simple bash script do extract the package names from the appropriate line on the info page, you ought to be ashamed of yourself, because it's literally this fucking easy:
 +
# slackpkg_reqs.sh
 +
# usage: slackpkg_reqs.sh [package]
 +
# or: reqs=`slackpkg_reqs.sh [package]`
 +
#    slackpkg install [package] $reqs
 +
# or even: slackpkg install [package] `slackpkg_reqs.sh [package]`
 +
 +
reqs=""
 +
check_reqs() {
 +
for req in `slackpkg info $1 | awk '/REQUIRED/{print $3}' | tr ',' ' '`
 +
do reqs="$req $reqs"
 +
check_reqs $req
 +
done
 +
}
 +
check_reqs $1
 +
echo $reqs
 +
 
 +
===Slackware is a timesink===
 +
 
 +
Because it takes you hours to resolve dependencies? It requires less post-install setup than Arch (you can really just get away with adding a user for yourself, and you'd probably want to uncomment the four lines in your ntp.conf that make it actually work) to give you a fully functional desktop (not to mention it comes with all the basic software you'd need, saving you the trouble of thinking of every package you need to download). Unlike Gentoo, it actually ships binary packages for almost all software. Unlike *buntu, it has practically zero bloat - all software is vanilla without extra distro-specific additions and great care is taken not to include packages that would go against the goals of simplicity and stability (the most prominent example of this was the decision to drop GNOME from the official distro back in 2005, when it was only a fraction as horrible as it is now). Everything can be a timesink if you have to learn how to do it, but Slackware, due to its simple and unobfuscated design, is simple to learn and once you learn it you will never have to spend time fixing it.
 +
 
 +
===Slackware doesn't have my favorite program===
 +
 
 +
If it's available on other distros and it's not something distro-specific (like a package manager or heavily-patched versions of software), you can get it for Slackware, often in compiled format. If you are truly a sick fuck, there is even a project to make systemd and GNOME 3 run on a stock Slackware install.
 +
 
 +
==External Links==
  
 +
*[http://slackware.com/ Official site]
 +
*[http://slakfinder.org/slackpkg+.html slackpkg+ plugin for third-party repository support]
 +
*[https://slackbuilds.org/ "Official" SlackBuild repository for third-party packages]
 +
*[https://www.sbopkg.org/ sbopkg to browse and manage builds from the above]
 +
*[https://www.linuxquestions.org/questions/forumdisplay.php?forumid=14 The closest thing Slackware has to an official forum]
 +
*[https://docs.slackware.com/slackbook:start Official documentation wiki]
 +
*[http://slackbook.org/ The old (2012) SlackBook, slightly outdated but great resource for learning basic system management and Linux fundamentals]
  
===Installer===
+
==Derivatives==
  
Slackware features a [[ncurses]] text based installer.  Initial formatting is done with the command line.  Slackware has very flexible package-based installation options, allowing fine-tuning of the operating system.  There are several options for choosing packages, full install, individual prompting (The X series takes one year), and menus.
+
===Live===
  
===Package Management===
+
Slackware contributor Eric Hameleers has recently introduced live ISOs with a fully functional stock Slackware-current system and versions for several popular desktop environments. He also provides scripts to make your own custom liveslak: http://docs.slackware.com/slackware:liveslak
  
"Slackware doesn't have package management"  --Some retarded NEET
+
===Salix===
  
Package management is provided by the [[Package manager #slackpkg|slackpkg]] utility. Slackpkg, however, does not have dependency resolution. This is not considered a con by the Slackware community and is generally said to not be a problem. The third-party package manager slapt-get adds dependency resolution. Packages are provided as binaries, however there is an AUR-like system called Slackbuilds that allows you to compile and install third party packages easily either by hand or through sbopkg.
+
Slackware with GUI package management and system administration, custom artwork and themes, and official support for MATE and ratpoison: https://www.salixos.org/
  
 +
=== VectorLinux ===
 +
Simple Slackware-based distro, similar to Salix, but with a focus on being lightweight: http://www.vectorlinux.com/
  
 +
===Zenwalk===
  
 +
Slackware with one application per task, Xfce only, custom artwork and themes, GUI package management/system administation... https://zenwalkgnulinux.blogspot.com/
  
"We do these things, not because they are easy, but because they are hard"  --President John F. Kennedy, installing Linux
+
[[Category:GNU/Linux]]
 +
[[Category:Distros]]

Latest revision as of 15:41, 13 February 2017

Slackware logo

Slackware Linux is a GNU/Linux distribution known for its age and stability. Slackware was created by Patrick Volkerding in 1993 out of patches and bugfixes he had to make for SLS in order to install it in his university's computer lab. It was one of the first stable, complete Linux distributions, which made it extremely popular in the 1990s, and it is the oldest distribution still being maintained.

Slackware's main goal is simplicity. Although not as idiot-friendly as some distributions, Slackware is exceedingly easy for a more capable user to modify and tweak to suit their needs.

The name of Slackware derives from "Slack", a central principle of the parody religion The Church of the SubGenius. Patrick Volkerding is an ordained minister in the Church, making it the only operating system approved by J.R. "Bob" Dobbs, Living Slack Master and High Epopt of the Church of the SubGenius. The pipe-smoking Tux and pipe-shaped line present in Slackware logos are references to "Bob"'s iconic pipe.

Why?

  • Stable - both in terms of not crashing and not changing its core design in decades
  • Simple - few moving parts, nearly everything done through shell scripts and text files
  • Sensible - sane defaults, few restrictions, things work the way you you expect
  • Slackful - by offering stability, encouraging simplicity, and following sensible design principles, it frees the enlightened user from having to worry about the OS and fills him with Slack

Features

Slackware is built primarily from stable vanilla packages and has a goal of always providing a stable and usable system out of the box and keeping it that way through conservative updates. It does not have a fixed release schedule; "stable" releases are announced whenever Patrick decides major changes and updates have been sufficiently tested. Slackware 14.2 was released 06/2016, two and a half years after 14.1 (11/2013). For people who don't like to wait, Slackware has a -current branch that updates packages as they are being tested for stable release and stays rather fresh.

Patrick is the BDFL of Slackware and he makes all decisions about what to include in each release. He is assisted by about half a dozen official developers who test and maintain each release. The Slackware team takes a very conservative approach when it comes to adding new features. 12.2 (12/2008) was the first version to have a "package manager" in the common sense of the term. 13.0 (08/2009) was the first release with an official 64-bit version. Previously there had been an unofficial third-party port but Patrick had neither the hardware nor the interest in testing and maintaining one himself. Multilib packages are not provided on a stock 64-bit system but can be installed from an "unofficial" repo maintained by one of the core developers. PulseAudio was added in 14.2 (06/2016), and only as a required dependency for the new version of bluez. Patrick has expressed dislike for systemd, and is unlikely to ever be adopted by Slackware. In the same interview, he showed ambivalence to Wayland, hinting that it might be offered as an option in Slackware 3-5 years after it has become standard for all other distros.

Slackware is loved by its users for strict adherence to the KISS principle. It is designed to have few moving parts which makes it very dependable and simple to operate. Virtually all system maintenance is done through shell scripts that use comfy blue-background ncurses dialogs and menus. All the configuration files and startup scripts are thoroughly commented and easy to follow. New users with a solid understanding of *nix fundamentals will find Slackware remarkably intuitive, and even those with no prior Linux experience will have no problem learning how the pieces fit together as long as they're not whiny retarded babbies that need to >>>/v/

Installation

The Slackware install DVD contains all the packages considered part of the "full" installation (7+ GB as of this writing), and optional build scripts to install several popular non-free programs such as Google Botnet, Flash, and Java. If you still have a 64MB flash drive from 1998, you can download the USB installation image, which only contains the installation environment (you would need either an internet connection on your target machine or a copy of the Slackware package tree on some local media). The menu-driven installer is simple enough for a beginner to just hit enter through and straightforward enough for those who want to customize their install to do so without difficulty.

Slackware divides official packages into groups (series): A is for basic required system components, AP is for non-essential console applications, D is for development, N is for networking, X is for X, etc. Some groups only contain one package -- E(macs) and T(eX) -- so that it is simple to exclude these controversial programs if you find them objectionable. It is recommended practice to always do a "full" install (install all packages in the selected groups) but if you want to manually select individual packages and risk leaving out something important, Slackware won't stop you.

Post-install system configuration also very straightforward. If you've never used LILO before, it can be somewhat intimidating, and doing something stupid will make your computer very hard to boot. If you're unsure, just let it configure automatically and write that fucker to the MBR.

Users coming from other distros that set up fancy logical volumes and encrypted partitions and GRUB version 2 by default might be complaining about the apparent lack of these features in Slackware. Trust me, it's all there. If you really need LVM, encryption, or GRUB, set it up yourself. It's not hard.

Configuration

Slackware uses a hybrid init system that combines the best features of BSD and SysV. Runlevels are associated scripts are defined in /etc/inittab. Slackware uses runlevel 3 for console login and runlevel 4 for graphical login. Startup and shutdown scripts are located in /etc/rc.d/, as are scripts for starting and stopping system services. Enabling or disabling automatic startup for a service is as simple as setting the execute permission for the script. Slackware initialization scripts tend to spit useful information out to the console and are very well commented, making it simple to diagnose and solve any (extremely rare) issues that may occur, or just modify the startup sequence if you feel like potentially breaking your system. Custom startup and shutdown actions can be added to /etc/rc.d/rc.local and /etc/rc.d/rc.local_shutdown.

Most of the configuration menus from the installer can be rerun later. Like everything else in Slackware, they are dialog shell scripts with names like setconsolefont, timeconfig, xwmconfig, liloconfig, etc.

Packages

Slackware includes a lot of software by default. With a full install, you get 2 DEs, 4 WMs, development tools for nearly all major languages, web, ftp, and mail servers, a variety of both graphical and console audio/video players, text and document editors, the GIMP, and so on. This is considered a Good Thing. Packages that don't ship with the official distribution can usually be found compiled in a handful of repositories, or as build scripts, called SlackBuilds, most of which are on SlackBuilds.org, the unofficial "official" SlackBuild repo.

Package management is provided by the slackpkg utility. To make slackpkg work with third-party/community repos, install the slackpkg+ plugin and set up your repos in /etc/slackpkg/slackpkgplus.conf. Slackpkg does not have "dependency resolution" because a package manager that automatically resolves and enforces versioned dependencies is inherently not simple, if one was made it would eventually lead to a situation where dependency conflicts prevented the user from doing what they want, or make rollback a nightmare, or create any of the problems found with other package management systems. It is the opinion of Patrick, and all Slackware users, that the tiny bit of extra effort needed to type in "slackpkg info [package]" for the rare dependency you might encounter is a small price to pay for the simplicity and freedom of using slackpkg.

Building packages can be done by running a SlackBuild (possibly first downloading all required source files) or using the third-party build tool sbopkg. Unlike slackpkg, sbopkg actually does have automatic dependency resolution if you use the included sqg (sbopkg queue generator), which will generate a build queue for any package with the dependencies all in the right order. sbopkg can either be given arguments from the command line or you can use its comfy menu-driven interface. SlackBuilds, info files, and build options for each package can be modified and saved if you want to include some custom patches or use a different version from the one in the repo.

Packages that were downloaded or built manually can be installed using installpkg, upgradepkg, or pkgtool if you like menus.

Common Misconceptions

Slackware is too advanced for beginners

If you want to use an OS without understanding it, you should go back to Windows or fagOS. If you want to be able to understand the OS you use, Slackware is arguably the best choice because it neither hides the internal workings of the system nor adds complexity to them. Moreover, it has very sane and sensible defaults that let you set up a working system with minimal knowledge of Linux/Unix and a very good guide for learning basic system use and administration.

Slackware is dead

May have been a more credible argument in 2015, when it had been almost 2 years since the last release. In December 2015 the dev team announced that the -current branch at that time was effectively the pre-release for 14.2, which was finally released 6 months later with many upgrades and improvements.

No matter how long it takes for "stable" numbered releases, Slackware-current has always been kept up to date and offers a mostly stable rolling release for people who want regular kernel updates. It is the oldest surviving Linux distribution, first released on 07/17/1993, making it 5 months older than Debian, and unlike Debian, it is not a socialist clusterfuck ruled by committees, governed by social contracts, that uses an absolutely ghastly package manager and is dependent on systemd.

Slackware has no package management

Slackware has the best, simplest, most flexible package manager of any major distro.

B-but muh dependency resolution

If you absolutely can't live without having all the dependencies for a package recursively listed for your convenience and you're too stupid to figure out how to write a simple bash script do extract the package names from the appropriate line on the info page, you ought to be ashamed of yourself, because it's literally this fucking easy:

# slackpkg_reqs.sh
# usage: slackpkg_reqs.sh [package]
# or: reqs=`slackpkg_reqs.sh [package]`
#     slackpkg install [package] $reqs
# or even: slackpkg install [package] `slackpkg_reqs.sh [package]`

reqs=""
check_reqs() {
	for req in `slackpkg info $1 | awk '/REQUIRED/{print $3}' | tr ',' ' '`
	do reqs="$req $reqs"
		check_reqs $req
	done
}
check_reqs $1
echo $reqs

Slackware is a timesink

Because it takes you hours to resolve dependencies? It requires less post-install setup than Arch (you can really just get away with adding a user for yourself, and you'd probably want to uncomment the four lines in your ntp.conf that make it actually work) to give you a fully functional desktop (not to mention it comes with all the basic software you'd need, saving you the trouble of thinking of every package you need to download). Unlike Gentoo, it actually ships binary packages for almost all software. Unlike *buntu, it has practically zero bloat - all software is vanilla without extra distro-specific additions and great care is taken not to include packages that would go against the goals of simplicity and stability (the most prominent example of this was the decision to drop GNOME from the official distro back in 2005, when it was only a fraction as horrible as it is now). Everything can be a timesink if you have to learn how to do it, but Slackware, due to its simple and unobfuscated design, is simple to learn and once you learn it you will never have to spend time fixing it.

Slackware doesn't have my favorite program

If it's available on other distros and it's not something distro-specific (like a package manager or heavily-patched versions of software), you can get it for Slackware, often in compiled format. If you are truly a sick fuck, there is even a project to make systemd and GNOME 3 run on a stock Slackware install.

External Links

Derivatives

Live

Slackware contributor Eric Hameleers has recently introduced live ISOs with a fully functional stock Slackware-current system and versions for several popular desktop environments. He also provides scripts to make your own custom liveslak: http://docs.slackware.com/slackware:liveslak

Salix

Slackware with GUI package management and system administration, custom artwork and themes, and official support for MATE and ratpoison: https://www.salixos.org/

VectorLinux

Simple Slackware-based distro, similar to Salix, but with a focus on being lightweight: http://www.vectorlinux.com/

Zenwalk

Slackware with one application per task, Xfce only, custom artwork and themes, GUI package management/system administation... https://zenwalkgnulinux.blogspot.com/