17 Dec 2022
This guide is a continuation from the lvm/luks installation guide.
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
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.
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.
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.
Happy Hacking & have a great day!