summaryrefslogtreecommitdiffstats
path: root/UPGRADE.TXT
blob: 22d989a7fd4e4ab5c694622e782ec6f6e110c5fc (plain) (blame)
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
178
179
180
181
182
183

Slackware 14.2 to 15.0 Upgrade HOWTO  <volkerdi@slackware.com>

This document explains how to upgrade from Slackware 14.2 to Slackware 15.0.

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

For details of important changes from Slackware 14.2 to 15.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 15.0 packages. If these are on a DVD,
create a new directory to mount the DVD 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 DVD, 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 --install-new /root/slackware/a/aaa_glibc-solibs-*.txz


2.  Upgrade your package utilities and related tools:

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


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

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


4.  Remove obsolete packages. The CHANGES_AND_HINTS.TXT file should have a
    list of these. You may also wish to go into /var/lib/pkgtools/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 14.2 or were
    introduced during the 15.0 development cycle and later removed:

    removepkg --terse ConsoleKit2 PyQt Thunar aaa_elflibs amarok amor ash \
      automoc4 bigreqsproto calligra-l10n-bs calligra-l10n-ca \
      calligra-l10n-ca@valencia calligra-l10n-cs calligra-l10n-da \
      calligra-l10n-de calligra-l10n-el calligra-l10n-en_GB calligra-l10n-es \
      calligra-l10n-et calligra-l10n-fi calligra-l10n-fr calligra-l10n-gl \
      calligra-l10n-hu calligra-l10n-it calligra-l10n-ja calligra-l10n-kk \
      calligra-l10n-nb calligra-l10n-nl calligra-l10n-pl calligra-l10n-pt \
      calligra-l10n-pt_BR calligra-l10n-ru calligra-l10n-sk calligra-l10n-sv \
      calligra-l10n-tr calligra-l10n-uk calligra-l10n-zh_CN \
      calligra-l10n-zh_TW cargo cgmanager compositeproto damageproto db42 \
      db44 dirmngr dmxproto dri2proto dri3proto eigen2 eject evieext \
      fixesproto fontcacheproto fontsproto gcc-java getty-ps glade3 \
      glibc-solibs glproto gnome-themes-standard gnu-cobol gst-plugins-base0 \
      gst-plugins-good0 gstreamer0 gtk-xfce-engine herqq idnkit ilmbase \
      imapd inputproto intel-gpu-tools js185 kaccessible kajongg \
      kaudiocreator kbproto kde-base-artwork kde-baseapps kde-l10n-ar \
      kde-l10n-bg kde-l10n-bs kde-l10n-ca kde-l10n-ca@valencia kde-l10n-cs \
      kde-l10n-da kde-l10n-de kde-l10n-el kde-l10n-en_GB kde-l10n-es \
      kde-l10n-et kde-l10n-eu kde-l10n-fa kde-l10n-fi kde-l10n-fr \
      kde-l10n-ga kde-l10n-gl kde-l10n-he kde-l10n-hi kde-l10n-hr \
      kde-l10n-hu kde-l10n-ia kde-l10n-id kde-l10n-is kde-l10n-it \
      kde-l10n-ja kde-l10n-kk kde-l10n-km kde-l10n-ko kde-l10n-lt \
      kde-l10n-lv kde-l10n-mr kde-l10n-nb kde-l10n-nds kde-l10n-nl \
      kde-l10n-nn kde-l10n-pa kde-l10n-pl kde-l10n-pt kde-l10n-pt_BR \
      kde-l10n-ro kde-l10n-ru kde-l10n-sk kde-l10n-sl kde-l10n-sr \
      kde-l10n-sv kde-l10n-tr kde-l10n-ug kde-l10n-uk kde-l10n-wa \
      kde-l10n-zh_CN kde-l10n-zh_TW kde-runtime kde-wallpapers kde-workspace \
      kdeartwork kdegraphics-strigi-analyzer kdelibs \
      kdenetwork-strigi-analyzers kdepim kdepim-apps-libs kdepimlibs \
      kdesdk-strigi-analyzers kdevelop-php kdevelop-php-docs kdevplatform \
      kdewebdev keybinder kgamma kio-mtp klettres korundum kplayer kppp \
      kremotecontrol ksaneplugin ksnapshot ksysguard ktuberling ktux \
      kuser kwebkitpart lha libXfont libart_lgpl libbluedevil libcroco \
      libkdeedu libkgeomap liblastfm libmcs libmm-qt libmowgli libmsn \
      libnm-qt libtermcap libva-intel-driver libwmf-docs mailx man \
      mkfontdir mozjs52 mozjs60 mozjs68 mplayerthumbs nepomuk-core \
      nepomuk-widgets notify-python openldap-client openssl10 \
      openssl10-solibs orage oxygen-icons pairs perlkde perlqt \
      phonon-gstreamer pm-utils presentproto printproto pth pykde4 pyrex \
      python python-enum34 qca-qt5 qimageblitz qjson qt qt-gstreamer qtruby \
      qtscriptgenerator randrproto raptor2 rasqal recordproto redland \
      renderproto resourceproto rfkill rxvt scim scim-anthy scim-hangul \
      scim-input-pad scim-m17n scim-pinyin scim-tables scrnsaverproto \
      seamonkey-solibs sendmail sendmail-cf slocate smokegen smokekde \
      smokeqt soprano strigi superkaramba tetex tetex-doc transfig trn \
      urwid videoproto virtuoso-ose wicd-kde wireless-tools workbone \
      xcmiscproto xextproto xf86-video-xgi xf86-video-xgixp xf86bigfontproto \
      xf86dgaproto xf86driproto xf86miscproto xf86vidmodeproto xfractint \
      xineramaproto xproto xv


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 --verbose $configfile $(echo $configfile | rev | cut -f 2- -d . | rev)
       fi
     done

    You might also wish to move this config file over:

    /usr/share/vim/vimrc.new


6.  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 geninitrd script:

    # geninitrd

    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.

    If you are using elilo on a machine with UEFI BIOS, run the eliloconfig
    command to install the new kernel and initrd to the EFI System Partition.


7.  Return to multi-user mode:
    telinit 3


8.  Reboot to start using the new kernel.


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

I wish everyone good luck with this!

---
Patrick Volkerding
volkerdi@slackware.com