1 == Online upgrade an i386 Fedora system to x86_64 ==
5 **WARNING:** This exercise has been performed by experienced stunt sysadmins. Do not try this at home without professional supervision.
7 You will need to manually download a few packages from the repository.
8 A full local mirror of the repository might make things a little easier,
9 but it's not required. I use ##lftp## or ##lftpget## with these paths
10 conveniently bookmarked:
13 ftp://mirrors.us.kernel.org/fedora/updates/10/x86_64/
14 ftp://mirrors.us.kernel.org/fedora/releases/10/Everything/x86_64/os/Packages/
17 Always check the updates directory first for the latest version of the rpm,
18 or you might end up with incompatible dependencies.
22 Enough talking, now let's roll:
24 * **Kernel:** Download and install 64bit kernel:
26 rpm -U --ignorearch kernel-2.6.27.15-170.2.24.fc10.x86_64.rpm
29 * **Reboot:** this is the only time you'll need to reboot if you're careful
31 * **glibc:** Force install the 64bit glibc, but keep the 32bit libraries:
33 rpm -i --ignorearch --force glibc-2.9-3.x86_64.rpm glibc-common-2.9-3.x86_64.rpm glibc-2.9-3.i686.rpm
36 * Do random shell commands still work? Good, then we're still in business.
38 * **rpm:** Now comes the tricky part: we need to switch to 64bit rpm to continue the upgrade,
39 but rpm has a lot of dependencies. I did this by trial and error, eventually running
40 a very long command line:
42 rpm -U --force --ignorearch rpm-* libz-* ...
45 * **Disable gpg signatures:** At this point, I got seriously stuck by a mysterious problem,
46 probably unrelated to the arch migration: the new rpm would work, but refuse to install any new
47 package mumbling something about incorrect MD5 signature. It turned out that rpm was actually
48 using gpg rather than md5 signatures, and the error message was just misleading.
49 I got past this by disabling gpg signatures by commenting out the ##%_signature gpg## in
50 ##/usr/lib/rpm/macros##.
52 * **Install the rest:** At this point, it's all downhill. You can't get along with
53 "yum upgrade" though, because yum thinks you already have the latest versions of everything,
54 although with the wrong architecture. I did it like this:
56 rpm -i `rpm -qa | sed -ne 's/i[36]86/x86_64.rpm/p'`
59 * **Final cleanup**: you might want to remove all the i386 junk to get a pure 64bit system.
60 I did it like this: ##rpm -e `rpm -qa | grep i[36]86`##.
67 If something goes wrong and you're stuck with an unworkable, you could boot off a 64bit live
68 CD and manually copy the files you need or ##chroot## into your half-upgraded system.
70 You might need to unpack rpms with ##rpm2cpio##. Also note a few rpm options useful in
71 recovery scenarios: ##--root##, ##--justdb##, ##--rebuilddb##.
74 === Help improve this documentation ===
76 If you manage to break your system in interesting ways, I'd like to know (but not necessarily
79 Please, edit this page with additional notes and tips. It's a wiki for a reason.