In my last blog post, I went over how I chose Slackware as my primary distribution, but I didn't really go that deep into why I chose it. So, I'm gonna make this post showcasing all the stuff I absolutely love about the distribution.
1. Package Management
In a base Slackware install, dependencies are a thing you just don't worry about. As by default, everything is installed. This may sound like bloat, but a full install of Slackware only comes to about 12gb, and if you use BTRFS compression, you can easily get it down to 4-6gb. And for all that storage you get:
- Basically every language compiler/interpreter. This means if you're a developer, you can get started right away with most languages.
- Basically every major open source library. This has two major effects:
- If you build a binary on Slackware, you can share that binary with someone else, and it'll for sure run.
- If you want to build something, you no longer have to go hunting for dependencies, as you can be sure it's all already there.
- Two Full desktop environments. You get every KDE app, and almost every Xfce app with their respective desktops. This is huge, as unlike "desktop" focused distributions, you can be sure you have a full OS, and not have to go constantly go back and forth to the package manager to find applications you're missing.
- All of Xorg, again, no hunting down specific X11 libraries.
- And speaking of Xorg, it contains a lot of the major Window Managers, such as Window Maker, Fluxbox, etc.
- Plus, a lot more!
And because of how simple the package manager is, updates are incredibly fast. After all, all it is, is just tarballs when you get down to it.
And speaking of simple, even making a Slackware package is incredibly simple. There's two ways of doing it:
- Quick and Dirty:
Do the standard
./configureroutine, but when you get to the
make installphase, do:
make DESTDIR=$PWD/output install, this will install the files to
output/in the current directory. Navigate to
outputand then do the simple command:
makepkg ../software_name-1.0.0-x86_64-1.tgz. And that's it! You made a package! Then just simply do
installpkg ../software_name-1.0.0-x86_64-1.tgzto install it. No build scripts, no learning an entire syntax language, no macros, just compile it, and make it a package!
- The Right Way:
Now, the correct way to do it, is to go on slackbuilds.org and get the
sbo-createport. Then create a new directory that has the package's name, and do
sbo-create software_name, and from there, just follow the on screen prompts. I won't go to deep into it, because it's incredibly simple. And once you're done, if the port doesn't exist on Slackbuilds, you can submit it!
Speaking of Slackbuilds... Like the BSDs, Slackware has a very similar port system in the form of slackbuilds.org. Here, you can go find software that's not in the main repository. You can also think of it as an AUR. There's a lot of software you can find on there, and you can use ports like
sbotools to build them for you super easily!
Another thing about the packages on Slackware, is that they are incredibly vanilla. That is to say, no custom patches outside of getting things to build. Meaning, when you use KDE, you are using KDE, not a weird custom config'd version of it.
The ease of package management, the lack of dependency hell, and the availablity of software in Slackbuilds has made Slackware, in my humble opinion, have the best package manager of any Linux Distribution. Not bad for a bunch of shell scripts and tarballs!
Like the package management, Slackware is also one of the easiest distributions to install. First and foremost, the entire distribution fits onto a single DVD, meaning an fully offline installation is supported. Great if your laptop's wifi doesn't work out of the box, or if you're from an area without great internet! While you have to do partitioning manually, it should be noted that
cfdisk these days is incredibly user friendly and the
setup tool from Slackware will tell you if anything is wrong.
Once you launch
setup, it's extremely straightforward from there, most of it ends up just being "Press enter to continue." The formatting partitions part in particular is extremely simple in comparison to many other GNU/Linux distributions. After all the software is installed, it'll go through a checklist of things to configure such as:
- What network manager do you want to use (NetworkManager, dhcp, etc)
- What Xorg Window Manager/Desktop Environment do you want to use?
- What services do you want enabled at boot?
- Do you need a usb boot disk? (Useful as a recovery tool)
- What should the default vi editor be? (Elvis, Nvi, Vim)
All of these have, in my opinion, sane defualts and you can safely just Press Enter to Victory. And that's it! Nothing more to it.
3. Init System
The Slackware init system is very BSD-like. You have a
/etc/rc.d directory, that contains init scripts, and all configuration of the init system is done through the
/etc/rc.d/rc.local_shutdown scripts. This gives you an absolutely insane degree of control. And, you can even replace this init system! On SlackBuilds, you can install
runit, or even
s6. Though, I think the default bsd-like init system is great in it's own right!
4. A Surprisingly Long LTS
Did you know Slackware 14.0 from 2012 is still supported? Yeah, really. It still gets updated. That's over 11 years of updates so far. Sure, it ships an outdated kernel (nothing is stopping you from just backporting the kernel from newer Slackware, as we've gone over before, it's just shell scripts), but it's amazing that it's still supported! So if you're like me, and want a solid stable system that won't change for a long time, Slackware is awesome for this!
Slackware is the oldest still maintained distribution. This reputation is important to me, because it lets me put a lot of trust into the distro. I don't have to worry about it up and disappearing over night. Likewise, the creator of Slackware gets, at the time of writing this $3,500 dollars a month on patreon, which means it's somewhat financially secure too, (though, that number would be higher ;) ).
6. Just Works.
And the one thing that makes me use this distribution, is that it all just works. I never run into any unexpected issues. I just plop it onto a machine, and it works!
Of course, there's a few things I don't like, as nothing is perfect such as:
The bootloader doesn't update automatically with EFI. (Easy enough to do with
pkgtool, seriously, it's a great utility.)
Compilation times from Slackbuilds can be extreme on some packages. cough Webkit2gtk cough. And unfortunately, there's no reliably updated Slackbuilds Binary Package Repository.
Xfce is missing a few of it's core apps, such as the
BTRFS compression isn't enabled by default, so you have to recompress the filesystem after enabling it. (Very minor, most distros don't enable it by default)
As you probably notice, these are extremely minor.
And last, but not least. The community of Slackware is fantastic. They are extremely friendly, outgoing, the majority of them aren't elitist, and are what i'd describe as "chill". If you haven't given Slackware a try, I highly recommend you do! Even if you don't like it, you can at least say you tried the oldest still living Linux distribution, haha!
By the way, you can support the Slackware project by donating to it's patreon, anything helps, even if it's just a dollar a month!