summaryrefslogtreecommitdiff
path: root/UPGRADE.TXT
blob: 73b926bdeb85661fafe4c499bf4e069f07305dc9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177

Slackware 13.37 to 14.0 Upgrade HOWTO  <volkerdi@slackware.com>

This document explains how to upgrade from Slackware 13.37 to Slackware 14.0.

----------------------------------------------------------------------------

For details of important changes from Slackware 13.37 to 14.0, see the file
'CHANGES_AND_HINTS.TXT'.  Thanks to Robby Workman for help with this.

Before you begin, I would strongly recommend making a backup of your
system, or, if not the entire system, at least the /etc directory.  You
might find that you need to refer to a few things after the upgrade
process is complete. Back it up, or take your chances.

OK, now that everything is safely backed up, let's proceed. :-)

To do this, you'll need the Slackware 14.0 packages.  If these are on a CD,
create a new directory to mount the CD on so that it doesn't get in the way
during the upgrade:

mkdir /packages
mount /dev/cdrom /packages

The packages don't have to be on a CD-ROM, as an alternative you could
copy the slackware directory (the one with the various package
subdirectories in it, basically the "slackware" or "slackware64" directory
from the install disc) to someplace like /root/slackware/.  The important thing
is that you know where the slackware packages directory is.  We'll use
/root/slackware in the following examples.


0.  Put your machine in single-user mode:
    telinit 1

    Note that this is _not_ strictly required, and there have been reports
    of success remotely upgrading machines that are still in multiuser
    mode.  However, more things can go wrong in multiuser, so especially
    if you're considering a remote upgrade in multiuser mode, you might
    want to clone the machine locally so that you can do a test run to
    uncover any problem areas and come up with workarounds for them.


1.  Upgrade your glibc shared libraries.  This is important, or things
    might go haywire during the next part of the upgrade:

    upgradepkg /root/slackware/a/glibc-solibs-*.t?z


2.  Upgrade your package utilities and related tools:

    upgradepkg /root/slackware/a/pkgtools-*.tgz
    upgradepkg /root/slackware/a/tar-*.tgz
    upgradepkg /root/slackware/a/xz-*.tgz
    upgradepkg /root/slackware/a/findutils-*.txz


3.  Upgrade everything else (and install new packages):

    upgradepkg --install-new /root/slackware/*/*.t?z

    If you wish to upgrade everything except for the KDEI language
    packs for KDE (these take a lot of space and can be dealt with
    after the main upgrade more quickly and easily), running this
    script in the "slackware" directory will do the trick:

    #!/bin/sh
    for dir in a ap d e f k kde l n t tcl x xap xfce y ; do
      ( cd $dir ; upgradepkg --install-new *.t?z )
    done


4.  Remove obsolete packages.  The CHANGES_AND_HINTS.TXT file should have a
    list of these.  You may also wish to go into /var/log/packages and take
    a look at the package list:

    ls -lt | less

    You may spot some old, obsolete, or discontinued packages.  If so,
    you can remove these using 'removepkg'.  This command will get rid of
    the packages which became obsolete since Slackware 13.37:

    removepkg gdisk hal hal-info iwlwifi-100-ucode iwlwifi-1000-ucode \
      iwlwifi-3945-ucode iwlwifi-4965-ucode iwlwifi-5000-ucode \
      iwlwifi-5150-ucode iwlwifi-6000-ucode iwlwifi-6xxx-ucode \
      jre kdeaccessibility kdebase kdebase-runtime kdebase-workspace \
      kdebindings kdeedu kdegraphics kdeutils koffice konq-plugins \
      kopete-cryptography module-init-tools ntfsprogs polkit-kde-1 \
      radeon_ucode raptor rt2860-firmware rt2870-firmware rt61-firmware \
      rt71w-firmware scripts wv2 xaw3d xf86-video-radeonhd \
      xf86-video-sisusb xf86-video-tseng xf86-video-xgi xfce


5.  Fix your config files.  Some of the config files in /etc are going to 
    need your attention.  You'll find the new incoming config files on 
    your system with the ".new" extension.  You may need to fill these in 
    with information from your old config files and then move them over.

    Feel brave?  You can use this little script to install most of the
    .new config files in /etc.  If you've made any local changes you'll
    need to add them to the newly installed files.  Your old config files
    will be copied to *.bak.  Anyway, it might be an easier starting
    point.  Here it is:

     #!/bin/sh
     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" ]; 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

    You might also wish to move these config files over:

    /usr/lib*/man.conf.new
    /usr/share/vim/vimrc.new


6.  If you use a non-en_US language pack for KDE and you already have it
    installed, then you may upgrade it by moving into the slackware/kdei
    directory and using this command:

    upgradepkg --install-new *-<your KDE locale>-*t?z

    The KOffice suite has been renamed to Calligra, so you'll need to
    remove any old koffice-l10n package that remains:

    removepkg /var/log/packages/koffice-l10n*

    If your language has been added to KDE since Slackware 13.37, you'll
    need to install it using installpkg, or upgradepkg --install-new.
   
    Typically you'll need to make sure that you have installed the
    slackware/kdei packages for kde, calligra, and k3b (if you use those).


7.  IMPORTANT!  *Before* attempting to reboot your system, you will need
    to make sure that the bootloader has been updated for the new kernel!
    First, be sure your initrd is up to date (if you use one).  You can
    build a new initrd automatically by running the
    mkinitrd_command_generator.sh script.

    If you're running the 64-bit kernel, or the 32-bit single processor
    kernel, this is the command to use:

    /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 3.2.29 | bash

    If you're using the 32-bit SMP kernel, use this command:

    /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 3.2.29-smp | bash

    If you use LILO, make sure the paths in /etc/lilo.conf point to a valid
    kernel and then type 'lilo' to reinstall LILO.  If you use a USB memory
    stick to boot, copy the new kernel to it in place of the old one.


8.  Return to multi-user mode:
    telinit 3


9.  Reboot to start using the new kernel.


At this point you should be running Slackware 14.0.  :-)

I wish everyone good luck with this!

---
Patrick Volkerding
volkerdi@slackware.com