Dies ist eine alte Version des Dokuments!
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
( ftp://ftp.gwdg.de/pub/linux/slackware/slackware-current/ works good for Germany )
Slackpkg Usage:
rm -r /etc.bak; # Back up /etc to be on the save side cp -a /etc /etc.bak slackpkg check-updates # to see if updates are necessary at all slackpkg update # to update the package list slackpkg upgrade-all # to finally install the new versions of existing packages
/etc/rc.d/rc.modules
must be adjusted manually
Go on with fixing config files (below)!
rm -r /etc.bak; cp -a /etc /etc.bak slackpkg check-updates slackpkg update slackpkg install-new slackpkg upgrade-all slackpkg clean-system
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
.
install-new
would install packages you intentionally skipped (e.g KDEI) as well. To avoid this add those package to the blacklist!
Whole package series can be blacklisted as well, eg
./slackware64/kdei
blacklists everything from the kdei series (tested). See also
Go on with fixing config files (below)!
Make sure to have a copy of the original version of every file you modified. Give the original files a uniform extension, eg. .sborg
Make sure you don't have any old .new
files somewhere in /etc
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
.
For everey new config file, it is most convenient to do an automated mv
or merge
with the following script:
Link
/var/www/htdocs/index.html
may be created by the update if it does not exist. This may conflict with your custom start page, eg index.php
Your 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.
Recommended approach for php.ini:
Afer OS installation, before any OS update:
mv php.ini-production php.ini.sborg cp php.ini.sborg php.ini echo ';Renamed php.ini-production to php.ini.sborg for updates' >> php.ini echo ';This file php.ini is based on php.ini.sborg' >> php.ini # now furhter edit php.ini to satisfy your needs
After OS update, but before running the sbMergeEtcConfig
script, a (new) php.ini-production
may exist again. Then do:
mv php.ini-production php.ini.new
Now run sbMergeEtcConfig
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
We assume that /home has its own partition which will be conserved during upgrade. Everything which has to be saved and is locatet in the / partition has to be moved and symlinked to the /home partition:
mkdir /home/redirects cp -a /usr/local /usr/local.org mv /usr/local /home/redirects/usr.local ln -s /home/redirects/usr.local /usr/local cp -a /opt /opt.org mv /opt /home/redirects ln -s /home/redirects/opt /opt cp -a /var/www /var/www.org mv /var/www /home/redirects/var.www ln -s /home/redirects/var.www /var/www # as of Slack 12.2 you might update the symlinks for the apache document root as well: cp /srv/httpd /srv/httpd.org cp /srv/www /srv/www.org ln -s /home/redirects/var.www /srv/httpd ln -s /home/redirects/var.www /srv/www
Thest if your moved data and applications are still available and working after that step!