Step-by-step Slackware 10.0 to Slackware 11.0
This upgrade is based loosely on the UPGRADE.TXT file provided by Pat, but it includes the steps you need specifically for a Linode. I tested it on a 4GB partition and it worked for me. It may not work for you – backup all your data before you start!
Start with a clean install of Slackware 10 and select a 2.6.20 or later kernel. The double disk space should help with that
Next, download the slackware 11.0 Disk 1 ISO to '/'.
Mount the ISO file on your local file-system:
mount /slackware-11.0-install-d1.iso /mnt -t iso9660 -o ro,loop=/dev/loop0
Switch to single user mode. It will log you out, but just log in again as 'root'.
Now, upgrade your glib shared libraries:
Upgrade your package tools:
Upgrade (or install) sed:
upgradepkg --install-new /mnt/slackware/a/sed-*.tgz
Upgrade only what is already installed (you can add more packages later with slapt-get or whatever means you prefer):
Before you reboot, you need to make a couple of changes so that your new config files and start-up scripts will work. Execute the following script to make 'live' all the new config files and start-up scripts. The script will make backups of the old configs:
#!/bin/sh cd /etc find . -name "*.new" | while read configfile ; do if [ ! "$configfile" = "./rc.d/rc.inet1.conf.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
Now before you reboot, you have to enable your LISH console. Copy the original inittab and securetty files back, so that you can login using the LISH console if anythnig goes wrong:
cp /etc/securetty.bak /etc/securetty cp /etc/inittab.bak /etc/inittab
– At this point you can reboot your Linode from the web management console and it should boot up as a Slackware 11.0 box.
To tie up a few loose ends, you can disable the udev daemon (since the Linode kernels have all the devices in anyway):
chmod -x /etc/rc.d/rc.udev
I also hard-configured my IP address and gateway information so that I don't have to run the dhcp client daemon. Saves a small amount of RAM.
Edit: fixed typo in the upgrade packages step