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
- Finishing
- Reboot
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.
#!/bin/sh
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 )
done
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.
#!/bin/sh
cd /etc
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)
fi
done
You should upgrade/merge your man.conf file and vimrc with these file:
/usr/man/man.conf.new
/usr/share/vim/vimrc.new
Reboot
# reboot
Finishing
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.