Slackware Upgrade

screenFetch-2015-06-01_01-54-07

I’m still using –current, but I made a boo boo that cost me some time.  The basic syntax for slackpkg is

# slackpkg update && slackpkg install-new && slackpkg upgrade-all && slackpkg clean-system

Well, that last one can get ya.  Especially if you have some extra packages on your system that aren’t an official part of Slackware.  (And who doesn’t?)  These would be things like a flash plugin for Firefox or maybe another window manager that you like, and maybe some extra tools (like screenfetch and scrot) that you just prefer.  How about LibreOffice for example?  Well, “clean-system” will remove all those too.

The thing to do, apparently, is to “blacklist” the packages you don’t want slackpkg to touch.  This list lives in /etc/slackpkg/blacklist

On the positive side, everything else in the upgrade went very smoothly.  There were a bunch of config files in /etc/*.new /etc/*/*.new /etc/*/*/*.new but most of those were no big changes. Of course, there are files in /etc that truly deserve to be edited by hand or at least diff -c configgy.conf configgy.conf.new to see what has changed. Files such as /etc/passwd /etc/group /etc/shadow and so on are not good candidates for automated overwrites. These you should copy the edits by hand and ensure that only what you approve goes into those files. The rest are scriptable.  After the upgrade and cleanup, it’s still a good idea to check out /var/log/removed_packages and ensure nothing you want has been removed. I had lost giblib and imlib, which scrot requires.  That’s okay, I still had the packages nearby.  In the future, I’ll have those items blacklisted.  Meanwhile, isn’t that a cool wallpaper? It can be found here. Nice job, Piotr!

By the way, I simply added a few more filenames to the script that usually gets reprinted in UPGRADE.TXT, and here is that script that helps me during larger upgrades:


#!/bin/bash

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” \
-a ! “$configfile” = “./gshadow.new” \
-a ! “$configfile” = “./hosts.new” \
-a ! “$configfile” = “./hosts.allow.new” \
-a ! “$configfile” = “./hosts.deny.new” \
-a ! “$configfile” = “./profile.new” \
-a ! “$configfile” = “./inetd.conf.new” \
-a ! “$configfile” = “./inittab.new” \
-a ! “$configfile” = “./fstab.new” \
-a ! “$configfile” = “./lilo.conf.new” \
-a ! “$configfile” = “./resolv.conf.new” \
-a ! “$configfile” = “./sudoers.new” \
-a ! “$configfile” = “./mtab.new” \
-a ! “$configfile” = “./networks.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

So, that’s it! And great thanks and praise to the Slackware team for delivering another excellent –current experience!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s