Table of Contents

Upgrading Slackware to a New Release

Upgrade or Install from Scratch

Installing Slackware fresh and from scratch is always the best method if you are running a fairly old release of Slackware and want to skip a few releases. Too many intrusive changes to the distro will have occurred if your Slackware is relatively old. It will make a manual upgrade process painful and will not guarantee success.
It is better in such cases to make a backup of your package list (“ls -lart /var/log/packages”), a backup of your “/etc” directory and (you did this already of course) a backup of your personal data. Formatting your disk and installing from the Slackware boot medium, and an hour later you could already be back in business.

If you want to upgrade to the next Slackware release, you can do this manually by following the instructions in the file “UPGRADE.TXT” which you will find in the root of the Slackware DVD/CD1. Advanced instructions and further hints can be found in “CHANGES_AND_HINTS.TXT” in the same location. There is also a semi-automated procedure for this type of upgrade, using slackpkg. It will take away a lot of the hard labour from you.
I always use slackpkg (with care) to upgrade my Slackware systems from one stable release to the next. I call this process a “system upgrade”.
You can use the same procedure to migrate to slackware-current, keep a slackware-current system up to date, or upgrade from a slackware-not-so-current to a freshly released stable version.

Considerations about the Kernel

Just running slackpkg and hoping for the best is not going to work. Some considerations have to be cared for. One important thing to remember:

Never upgrade your working kernel.

Why is that? Simple - you will be upgrading potentially hundreds of packages and should be prepared for the unlikely event that your computer does not work properly anymore after a system upgrade. One thing you don't want to get hit by is a system which does not boot at all. A new Slackware release may install a kernel that refuses to boot your computer (small chance but nevertheless… be prepared). For that reason, you need to keep your “old” working kernel installed, and keep a section for it in your /etc/lilo.conf file. That way, if the new kernel fails to boot, you can fall-back to the old kernel and start investigating what went wrong.
Basically, these are the same precautions you must take when you are compiling a new kernel yourself.

Video driver considerations

If your computer is equipped with a video card powered by an Nvidia or Ati graphics processor and you have installed these companies' accelerated graphics drivers (closed-source and binary-only), you should not attempt start an X session after upgrading to the next Slackware release.
These drivers depend on kernel version, Mesa version and the X.Org server. You must re-install the binary driver before starting graphical mode. Also, the mesa and xorg-server packages of Slackware overwrite essential files of these closed-source accelerated graphics drivers anyway.

If you want to know how to deal with these binary drivers, we have more detailed instructions in the “Proprietary Graphics Drivers” article on this Wiki.

Slackpkg considerations

If you upgrade Slackware (see below for the procedure), you will upgrade slackpkg as one of the first steps. The upgradepkg command will install a file /etc/slackpkg/mirrors.new. This is the file which contains the URLs for mirrors carrying the new Slackware release. You will have to compare this to the original version and merge the contents.

Be sure to have exactly one line uncommented which points to a mirror for the desired Slackware release version and architecture.

System Upgrade using SlackPkg

The following steps should work for all situations:

In Slackware 14.2 and earlier, the aaa_glibc-solibs package was called glibc-solibs
If you were already running a generic kernel and therefore already have an initrd, we strongly advise you to create a new initrd with a new unique name! For instance, you can copy the above example and modify the name of the initrd file as follows:
mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sdb2 -m usb-storage:pcmcia_core:pcmcia:mmc_core:ssb:modprobe:usbhid:ehci-hcd:ohci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd_3.2.29.gz
Bottom-line: you can trust slackpkg to perform a system upgrade safely, but it will need your brains and care.

Multilib considerations

If you are upgrading a multilib 64-bit Slackware computer, there are additional considerations to make.

A multilib installation means that you have replaced Slackware's 64-bit gcc and glibc packages with multilib versions (ie.e. supporting both 32-bit and 64-bit binaries). Also, you have installed a set of “converted” 32-bit Slackware packages on your 64-bit multilib Slackware. These modifications are all needed to allow you to run and compile 32-bit software.

When upgrading such a system, you must of course upgrade the standard Slackware packages, but separately you must upgrade the multilib-specific packages with new versions which you can obtain from http://slackware.com/~alien/multilib/

Java considerations

Slackware used to install a Java Run-time Engine prior to the 14.0 release (the JRE binaries were originally Sun's and later distributed by Oracle after it bought Sun).
But Oracle changed the re-distribution license so that Slackware (just like all other distributions) was no longer permitted to ship these Java binaries as part of the distribution. When you perform a system upgrade to Slackware 14.0, an old version of the JRE will stay behind on your system. This version “6u25” has several critical vulnerabilities and you should remove it manually from your computer as fast as possible, using the command

removepkg jre

If you need Java then please have a look in the “/extra/source/java” directory of the Slackware 14 release. You will find a script there to create a Slackware package from the most recent Java software from Oracle, which you can then install using the “installpkg” command. See also our Wiki article “Java in Slackware

Sources

1)
Slackware's package manager does not work with the concept of “lower version” and “higher version”. The package tools only look at “different version” and thus downgrading packages (reverting to an earlier version) is just as easy as upgrading to a newer version!