Slackware post-installation guide

17 Dec 2022


This guide is a continuation from the lvm/luks installation guide.

Setting up a normal user

After a vanilla slackware installation the only user present would be the root user. Using a normal user for our daily needs is ideal. Create one with

# useradd -m -g users -G wheel,floppy,audio,video,cdrom,plugdev,power,netdev,lp,scanner -s /bin/zsh jim

This will create a user named jim whose default shell would be zsh and will be a member of the wheel group that can run sudo commands. Now we setup jim's password

# passwd jim

Next, we setup sudo so that member's of the wheel group can run any command

# visudo

In the file that opens up, make sure the following line is uncommented

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL

Before we continue further, lets add a few lines to configure root's vim, if you plan on using vim to edit config files. Open ~/.vimrc and add

set nocompatible " vim tries to emulate old vi, this tells it not to

filetype plugin indent on  " Load plugins according to detected filetype.
syntax on                  " Enable syntax highlighting.

set laststatus  =2         " Always show statusline.
set display     =lastline  " Show as much as possible of the last line.

" dont litter the current folder with backup files
set backup
set backupdir   =$HOME/.vim/files/backup/
set backupext   =-vimbackup
set backupskip  =
set directory   =$HOME/.vim/files/swap//
set updatecount =100
set undofile
set undodir     =$HOME/.vim/files/undo/
set viminfo     ='100,n$HOME/.vim/files/info/viminfo

Package management

slackpkg is slackware's default package manager. Everything thats in the slackware DVD is the entire official slackware software repo. So this is where the community steps in and contributes extra packages.

Before we get into that, we need to blacklist a few packages, that we ignored during installation.

Open /etc/slackpkg/blacklist in vim

kernel-generic.*
kernel-huge.*
kernel-modules.*
kernel-source

kde/

Uncomment the kernel lines. This will prevent automatic update of a running kernel. The kde/ entry prevents installing kde packages. Now we tell slackpkg which mirror we wish to use.

Open /etc/slackpkg/mirrors and uncomment a mirror closest to you. Take care to uncomment only one! The file is heavily commented, so go ahead and start stroking your unix beard :)

...

#----------------------------------------------------------------
# Slackware64-15.0
#----------------------------------------------------------------
...

# UNITED KINGDOM (UK)
http://slackware.uk/slackware/slackware64-15.0/

....

Slackware 15 is the current stable version of slackware as of this writing and since its the version that we've installed, choose a mirror for it and not Slackware64-current. current is the development branch of slackware.

Lets update our package list

# slackpkg update gpg
# slackpkg update

This sets up slackpkg to use the new mirror and update its local package database. Take care to run slackpkg update often when you learn of updates. Read more about slackpkg from its official docs

To update your system from time-to-time, run

# slackpkg update
# slackpkg install-new
# slackpkg upgrade-all

If it found any updates, go through the list and install what you need. Take care to read any post install notes if any are presented.

Feel free to read the slackware beginners guide.

Configuring $HOME

Log out from root and login with your normal user.

Edit ~/.zprofile and add

EDITOR=vim
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_ALL=en_US.UTF-8
PAGER='less -R'
MANPAGER="$PAGER"

export EDITOR PAGER MANPAGER LANG LC_CTYPE LC_ALL

[ -d $HOME/bin ] && export PATH="${HOME}/bin:${PATH}"

# add su paths
export PATH="${PATH}:/usr/local/sbin:/usr/sbin:/sbin"

# long date format in ls
export TIME_STYLE=long-iso

These are some niceties to make our $SHELL life comfy. Logout and log back in.

Start your GUI with

$ startx

Xfce will start up. Open a terminal and do the same vim config update for your normal user as we did for root. On top of that lets configure a tool called tmux. Open ~/.tmux.conf and add

# Index starts from 1
set-option -g base-index 1
set-option -g pane-base-index 1

# Renumber windows when a window is closed
set-option -g renumber-windows on

# no login shell
set -g default-command "${SHELL}"

# 256-color terminal
set -g default-terminal "tmux-256color" # use 256 colors instead of 16

# Add truecolor support (tmux info | grep Tc)
set-option -ga terminal-overrides ",xterm-256color:Tc"

# Mouse
set-option -g mouse on

# Reload ~/.tmux.conf
bind-key R source-file ~/.tmux.conf \; display-message "Reloaded!"

Add an alias to launch tmux from your shell

$ echo "alias t='tmux -2 -u' >> ~/.zshrc"

Now, everytime we need to launch tmux, just type t and hit enter.

What I like to do when updating my system is - exit X and launch tmux from the tty - Then I switch to root using sudo su - - then i do slackpkg update and go from there.

When using slackware, we'll be spending most of our time on the command-line, so its a good investment to learn it. Bookmark the Unix Grymoire and get cracking.

Xfce is a very capable desktop environment. Almost everything one needs to know is mentioned on its archwiki entry.

Installing extra packages

slackpkg+ is a script that extends slackpkg to pull in software from 3rd party repos.

# upgradepkg --install-new slackpkg+-1.8.0-noarch-6mt.txz

Now, we'll have a new file of interest /etc/slackpkg/slackpkgplus.conf Make sure the following lines are updated accordingly. Some of them would be commented. Take a moment to read the file. TLDR; setup the repos, if 2 repos have the same packages, which takes priority? these are addressed in this file.

# if you plan on using wine or steam
PKGS_PRIORITY=( multilib )
MIRRORPLUS['multilib']=https://slackware.nl/people/alien/multilib/15.0/

REPOPLUS=( slackpkgplus )
MIRRORPLUS['slackpkgplus']=https://slakfinder.org/slackpkg+15/

At the end of the file, we can find a few repos that are given as examples and which could be used.

After we configure slackpkgplus, just run

# slackpkg update gpg
# slackpkg update

If we end up getting a Connection timed out error for slakfinder.org, please update the MIRRORPLUS entry for slackpkgplus to a mirror like

MIRRORPLUS['slackpkgplus']=https://slackware.nl/slackpkgplus15/

Mirror outages are not that common, but they might happen. Keeping an eye on the forum will save us a lot of time.

You can choose to skip installing multilib, but I use a few programs via wine. So I will install it. OldTechBloke has a tonne of incredible videos on slackware and how to setup a system. Do give it a watch, if you wish to see what the outcome of this is going to be.

# slackpkg update
# slackpkg upgrade multilib
# slackpkg install multilib

sbopkg is a tool to download and install packages from SlackBuilds. Slackbuilds is to slackware is what the AUR is for archlinux. Download sbopkg and install it with

# upgradepkg --install-new sbopkg-0.38.2-noarch-1_wsr.tgz

Make sure to blacklist sbopkg and all packages from slackbuilds in slackpkg's blacklist file.

kernel-generic.*
kernel-huge.*
kernel-modules.*
kernel-source

# This one will blacklist all SBo packages:
[0-9]+_SBo
# for alienbob's packages
#[0-9]+alien

# no kde
kde/

# sbopkg
sbopkg-0.38.2-noarch-1_wsr

sbopkg will download the source package from upstream for a package, compile + builds a slackware package and then installs it.

First thing to do would be to update sbopkg's local database

# sbopkg -r

Then open it up

# sbopkg

One gotcha here is that it does not handle dependencies. Every slackbuild script README has a variable called REQUIRES= which has a list of dependency packages that you can look into installing before you install the main package.

There's another fabulous tool or set of tools called sbotools that's available on slackbuilds that gives a bit more flexibility when installing from slackbuilds.

OTB has a wonderful video of this process.

TLDR;

# sbosnap fetch 
# sbofind packagename
# sboinstall packagename

The slackware docs has more info on sbopkg. Do give it a read.

Too Short Need More

Happy Hacking & have a great day!