fedora10→11→12にupgradeしたメモ

完全なチラ裏ですが。
自宅で作ってるWEBサイトのために、何を思ったかQ4Mを使ってみたくなり(触ってみたかっただけともいう)、さらにはInnoDBプラグインも試してみたくなったのでMySQLを5.1にしてみた。
yumでupdateできなかったのでrpm入れたりしてたんだけど、先にmysql消したら依存関係の都合上postfixが一緒に消えちゃいまして。
postfixrpmとかで入らないかなーとも思ったんですが、この際どうせならってことで自宅のfedora10を一気に12までupgradeしちゃおうってのが発端です。

以下upgrade記録です。

fedora 10 → 11 へ upgade

fedora11からrpmlibが更新されたのでまずrpmを更新しておく

% sudo yum update rpm

キャッシュクリア

% sudo yum clean all

リリースパッケージを取得して更新

% mkdir -p var/pkgs/fedora/11
% cd var/pkgs/fedora/11
% wget "ftp://download.fedora.redhat.com/pub/fedora/linux/releases/11/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm"
% ls
fedora-release-11-1.noarch.rpm  fedora-release-notes-11.0.0-2.fc11.noarch.rpm
% sudo rpm -Uvh fedora-release-*.noarch.rpm

リポジトリ更新

% sudo vim /etc/yum.repos.d/fedora.repo
% sudo vim /etc/yum.repos.d/fedora-updates.repo
mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch

rpmyumのみ先行UPDATE

% sudo yum update rpm\* yum\*
...
エラー: 依存性の欠落: python(abi) = 2.5 はパッケージ sos-1.8-18.fc10.noarch (installed) が必要としています
エラー: 依存性の欠落: libpython2.5.so.1.0 はパッケージ libxml2-python-2.7.6-1.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: libcrypto.so.7 はパッケージ ntp-4.2.4p7-1.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: python(abi) = 2.5 はパッケージ yum-3.2.24-2.fc10.noarch (installed) が必要としています
エラー: 依存性の欠落: libcrypto.so.7 はパッケージ 1:qt-4.5.3-9.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: python(abi) = 2.5 はパッケージ subversion-1.6.5-1.fc10.1.i386 (installed) が必要としています
エラー: 依存性の欠落: librpm-4.6.so はパッケージ systemtap-1.0-2.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: libcrypto.so.7 はパッケージ 1:qt-x11-4.5.3-9.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: libssl.so.7 はパッケージ 1:qt-x11-4.5.3-9.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: libssl.so.7 はパッケージ 1:qt-4.5.3-9.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: python(abi) = 2.5 はパッケージ audit-libs-python-1.7.13-1.fc10.i386 (installed) が必要としています
エラー: 依存性の欠落: python(abi) = 2.5 はパッケージ libxml2-python-2.7.6-1.fc10.i386 (installed) が必要としています
 問題を回避するために --skip-broken を用いることができません
 実行を試せません: package-cleanup --problems
                   package-cleanup --dupes
                   rpm -Va --nofiles --nodigest

エラーがいっぱいでたので、今は必要なさそうなパッケージを削除しちゃいます。必要になったときに後で入れ直せばよいかと。
ntpはhttp://fedoraproject.org/wiki/YumUpgradeFaqにあるように、Fedora11のパッケージより新しいことがあるようなので削除しておきます。

% sudo yum remove -y ntp

そのほかのパッケージを削除…しようとすると、依存性で大量に削除されそうになるので、大丈夫そうなパッケージだけ先に削除。

% sudo yum remove -y sos qt{,-x11} subversion systemtap libxml2-python

yumが依存性を持っているので、いったん削除する。(少し古くなる)

% sudo yum info yum
...
バージョン    : 3.2.24
リリース      : 2.fc10
...
% sudo yum remove -y yum
% mkdir yum
% cd yum
% wget "ftp://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/yum*.rpm"
% ls
yum-3.2.20-3.fc10.noarch.rpm  yum-metadata-parser-1.1.2-10.fc10.i386.rpm  yum-utils-1.1.18-2.fc10.noarch.rpm
% sudo rpm -Uvh --force yum*.rpm
% sudo yum info yum
...
Available Packages
Name       : yum
Arch       : noarch
Version    : 3.2.22
Release    : 4.fc11
...

fedora10のそれよりも若干古いのね。

audit-libs-pythonの依存性があるので、古いもので置き換える

% sudo yum info audit-libs-python
Installed Packages
Name       : audit-libs-python
Arch       : i386
Version    : 1.7.13
Release    : 1.fc10
...
Available Packages
Name       : audit-libs-python
Arch       : i586
Version    : 1.7.12
Release    : 4.fc11

これも若干古いらしいのと、archが変更されていた。

% cd ..
% mkdir audit
% cd audit
% wget "ftp://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/audit*.rpm"
% ls
audit-1.7.8-6.fc10.i386.rpm  audit-libs-1.7.8-6.fc10.i386.rpm  audit-libs-python-1.7.8-6.fc10.i386.rpm
% sudo rpm -Uvh --oldpackage audit*.rpm

改めて挑戦

% sudo yum update -y rpm\* yum\*

86パッケージが投入された。確認してみる。

% sudo yum info yum
Installed Packages
Name       : yum
Arch       : noarch
Version    : 3.2.22
Release    : 4.fc11
% sudo yum info audit-libs-python
Installed Packages
Name       : audit-libs-python
Arch       : i586
Version    : 1.7.12
Release    : 4.fc11

ちゃんと入っていますね。

やっとupgradeに挑戦

% sudo yum clean all
% sudo yum install -y yum-fastestmirror
% sudo yum -y upgrade

問題なく入ったのでrebootする。

% sudo reboot

とりあえずここまででfedora11になりました。
消してしまったパッケージを再度インストール。

% sudo yum install libxml2 libxml2-{devel,python} foomatic

fedora 11 → 12 へ upgade

ここからfedora12へupgradeする。
fedora11からrpmlibが更新されたのでまずrpmを更新しておく

% sudo yum update rpm

キャッシュクリア

% sudo yum clean all

リリースパッケージを取得して更新

% mkdir -p var/pkgs/fedora/12
% cd var/pkgs/fedora/12
% wget "ftp://download.fedora.redhat.com/pub/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm"
% ls
fedora-release-12-1.noarch.rpm  fedora-release-notes-12.0.0-4.fc12.noarch.rpm
% sudo rpm -Uvh fedora-release-*.noarch.rpm
エラー: 依存性の欠如:
        rpmlib(PayloadIsXz) <= 5.2-1 は fedora-release-12-1.noarch に必要とされています
        rpmlib(PayloadIsXz) <= 5.2-1 は fedora-release-notes-12.0.0-4.fc12.noarch に必要とされています

rpmlibでエラーが出ます。

% sudo yum info rpm
...
Installed Packages
Name       : rpm
Arch       : i586
Version    : 4.7.0
Release    : 1.fc11
...

http://fedoraproject.org/wiki/YumUpgradeFaq

All Fedora 12 RPM packages use XZ/LZMA compression, which is only supported by the rpm-4.7.1-1 update (or later) for Fedora 11. Before upgrading from Fedora 11, run yum update rpm.

とあるのでrpmをupdateする。

% sudo yum update rpm-4.7.1-1

駄目だった。入ってないのね。
http://d.hatena.ne.jp/karronoli/20091125#1259163176
http://koji.fedoraproject.org/koji/buildinfo?buildID=115602

というわけでrpmrpmを持ってくる。

% cd ~/var/pkgs/fedora/12
% mkdir rpm
% cd rpm
% wget http://kojipkgs.fedoraproject.org/packages/rpm/4.7.1/1.fc11/i586/rpm-4.7.1-1.fc11.i586.rpm
% wget http://kojipkgs.fedoraproject.org/packages/rpm/4.7.1/1.fc11/i586/rpm-build-4.7.1-1.fc11.i586.rpm
% wget http://kojipkgs.fedoraproject.org/packages/rpm/4.7.1/1.fc11/i586/rpm-devel-4.7.1-1.fc11.i586.rpm
% wget http://kojipkgs.fedoraproject.org/packages/rpm/4.7.1/1.fc11/i586/rpm-libs-4.7.1-1.fc11.i586.rpm
% wget http://kojipkgs.fedoraproject.org/packages/rpm/4.7.1/1.fc11/i586/rpm-python-4.7.1-1.fc11.i586.rpm
% ls
rpm-4.7.1-1.fc11.i586.rpm
rpm-build-4.7.1-1.fc11.i586.rpm
rpm-devel-4.7.1-1.fc11.i586.rpm
rpm-libs-4.7.1-1.fc11.i586.rpm
rpm-python-4.7.1-1.fc11.i586.rpm
% sudo rpm -Uvh rpm-*.rpm
% sudo yum info rpm
...
Installed Packages
Name       : rpm
Arch       : i586
Version    : 4.7.1
Release    : 1.fc11

再挑戦

% cd ~/var/pkgs/fedora/12
% sudo rpm -Uvh fedora-release-*.noarch.rpm

無事に更新。

rpmyumのみ先行UPDATE

% sudo yum update rpm\* yum\*

特に何もなし。

upgradeに挑戦

% sudo yum clean all
% sudo yum install -y yum-fastestmirror
% sudo yum -y upgrade

問題なく入ったのでrebootする。

% sudo reboot

fedora11にくらべてfedora12へのupgradeはあっけないほどすんなり入った。(rpmだけ入れたけども)何がまずかったって、yumの自動更新が走っていて上のバージョンよりも新しいバージョンが入っちゃってると非常に面倒だってことがわかったので、自動更新はOFFにしなきゃなと強く思った。
自宅サーバーだからと思って面倒臭がったらだめなのね…
ちなみに上記はVMwareで試してみた結果なのでまだ自宅サーバには試していない。

参考:
http://fedoraproject.org/wiki/YumUpgradeFaq
http://blog.77jp.net/%E3%81%9D%E3%81%AE%E4%BB%96%E3%80%80linux/fedora-8-%E2%86%92-fedora-9%E3%80%80%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89.html
http://www.multiburst.net/ElectricBrain/2007/10/yumfc6fc7

教訓

自動更新はやめましょう。