Dies ist eine alte Version des Dokuments!
This page describes how to keep your Slackware system up to date.
Keep old kernel. See http://docs.slackware.com/howtos:slackware_admin:systemupgrade
slackpkg
is a very convenient tool for that job. It can download update packages from the net and install them. In order to use it, you first have to uncomment a Slackware mirror close to your location for your Slackare version in the file /etc/slackpkg/mirrors
Before you start:
slackpkg clean-system
removes unofficial packages as well. You have to put unofficial packages into the blacklist. See comments in /etc/slackpkg/blacklist
and man slackpkg
./etc
. Give the original files a uniform extension, eg. .sborg
.new
files somewhere in /etc
According to http://docs.slackware.com/howtos:slackware_admin:systemupgrade install-new
installs ony new packages. It does not install packages you intentionally skipped on installaton.
First Back up /etc to be on the save side:
rm -r /etc.bak find /etc -name '*.new' # Output must be empty! cp -a /etc /etc.bak
Slackpkg usage:
slackpkg check-updates # to see if updates are necessary at all slackpkg update # to update the package list slackpkg upgrade slackpkg slackpkg upgrade glibc-solibs slackpkg install-new # only for Slack current or upgrade to next Slackware version! slackpkg upgrade-all # to finally install the new versions of existing packages slackpkg clean-system # only for current and distupgrade (?)
/etc/rc.d/rc.modules
must be adjusted manually
/var/www/htdocs/index.html
may be created by the update if it did not exist before. This may conflict with your custom start page, eg index.php
Go on with fixing config files (below)!
1st manually sync your local mulilib mirror, then
slackpkg check-updates # to see if updates are necessary at all slackpkg update # to update the package list slackpkg upgrade slackpkg cd <local_mulitlib_mirror> upgradepkg --reinstall --install-new *.t?z upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z slackpkg install-new # only for Slack current or upgrade to next Slackware version! slackpkg upgrade-all # to finally install the new versions of existing packages slackpkg clean-system # only for current and distupgrade (?)
Continue with lilo etc. See above!
After slackpkg has installed the new packages you will be asked how to treat the new config files. Select the first option, i.e. old config files are preserved and new config files get the extension .new
.
php.ini
may need manual treatment. If your php.ini is based on php.ini-production, you have to check if your model php.ini-production was modified by the update and merge the differences into your php.ini. This is because currently (Slack 13.37-14.1) no .new files are created for PHP. This issue seems to be fixed as of slack 14.1
For everey new config file, it is most convenient to do an automated mv
or merge
with the script sbMergeEtcConfig
Move this to slack_install
Have at least 2 partitions: A /
-partition where the linux distribution is installed and a /home
where all distribution independend things are located. During upgrade, /
will be completely overwritten by the new distribution, while /home
remains untouched.
Not tested yet: If your current system isn't split like this, you can copy the content of the disk to an image file on a separate drive (eg. USB-drive), then re-partion the drive and restore the content afterward. Use commands like:
dd if=/dev/hda1 of=harddisk-image # Make the image dd if=harddisk-image of=/dev/hda1 # Restore the disk content
See http://ldp.bootet.net/LDP/sag/html/sag.html#DISK-NO-FS . Maybe also the cat command is an option. See slackware-11.0/rootdisks/README.TXT