Before going further. To keep my configuration files safe I need to backup my /etc folder. In this case I backup it by creating iso image of /etc and keep the owner and permission of those files. You can do below method for your important files aswell.
# mkisof -o ~/etc-backup.iso -R /etc
And then check it
# mount -t iso9660 -o loop=/dev/loop0 ~/etc-backup.iso /mnt/tmp
# ls -ll /mnt/tmp
Next step is based on UPGRADE.TXT instructions, you can find it in root directory of Slackware distribution package. There area some steps to do to Upgrade your slackaware:
- Create packages folder
- Switch to single user
- Upgrade package utility and related tools
- Upgrade glibc shared libraries
- Upgrade packages and install new packages
- Remove obsolete packages
- Fix or install new configuration files
Create packages directory
You need to create directory which contains Slackware 13.1, you can download it one by one or download it in ISO format. In my case I download ISO file from one of this mirror and extract it into "Slackware packages" directory
# mount -t iso9660 -o loop=/dev/loop0 slackware-13.1-install-dvd.iso /mnt/tmp
# mkdir /slackware
# cp -rf /mnt/tmp/* /slackware/*
Basically I can use /mnt/tmp as "Slackware packages directory" but I prefer to copy it to another directory as my "Slackware packages" directory. It's only for safety and stability.
Switch to single user
I just do a simple command to switch into single user
# telinit 1
Upgrade package utility and related tools
Before going further we need to upgrade tools that related to packaging
# upgradepkg /slackware/a/pkgtools-*.tgz
# upgradepkg /slackware/a/tar-*.tgz
# installpkg /slackware/a/xz-*.tgz
# upgradepkg /slackware/a/findutils-*.txz
Upgrade glibc shared libraries
# upgradepkg /root/slackware/a/glibc-solibs-*.t?z
Upgrade packages and install new packages
If you want to upgrade and install all new packages, you can use command below
# upgradepkg --install-new /root/slackware/*/*.t?z
If you want to uprage and install new package based on package group you can use command below, just add and remove package group in looping.
for dir in a ap d e f k kde l n t tcl x xap y ; do
( cd $dir ; upgradepkg --install-new *.t?z )
You can check the description of those package group below:
A : The base system.
AP : Various applications that do not require the X Window System.
D : Program development tools.
E : GNU Emacs.
F : FAQs, HOWTOs, and other miscellaneous documentation.
K : The source code for the Linux kernel.
KDE : The K Desktop Environment.
KDEI : Language support for the K Desktop Environment.
L : System libraries.
N : Networking programs.
T : teTeX document formatting system.
TCL : The Tool Command Language, Tk, TclX, and TkDesk.
X : The base X Window System.
XAP : X applications that are not part of a major desktop environment.
Y : Games (the BSD games collection, Sasteroids, Koules, and Lizards).
Remove obsolete packages
You can remove obsolete packages in Slackware 13.1 by using command below:
#removepkg bluez-libs bluez-utils cupsddk device-mapper epic4 gqview \
kdelibs-experimental lbxproxy libgtkhtml liblbxutil libungif \
libv4l loadlin mpg321 mplayerthumbs proxymngr xf86-input-citron \
xf86-input-elographics xf86-input-fpit xf86-input-hyperpen \
xf86-input-mutouch xf86-video-newport xf86-video-xgixp
Fix or Install New Configuration file
Upgrading means you will have new configuration files in etc, if you brave enough you can apply script below to apply it.
find . -name "*.new" | while read configfile ; do
if [ ! "$configfile" = "./rc.d/rc.inet1.conf.new" \
-a ! "$configfile" = "./rc.d/rc.local.new" \
-a ! "$configfile" = "./group.new" \
-a ! "$configfile" = "./passwd.new" \
-a ! "$configfile" = "./shadow.new" ]; then
cp -a $(echo $configfile | rev | cut -f 2- -d . | rev) \
$(echo $configfile | rev | cut -f 2- -d . | rev).bak 2> /dev/null
mv $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
You should upgrade/merge your man.conf file and vimrc with these file:
If you've installed some packages that are not in Slackware default, you need to recheck it functionality, and if you find problem I think you need to recompile the software or it's dependency.