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!