PC/NETのetcetra/2007-08-25 のバックアップ(No.1)
※※このサイトは2012年頃より更新を停止しています。※※
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PC/NETのetcetra/2007-08-25 へ行く。
- 1 (2007-08-26 (日) 05:29:17)
CentOS4からCentOS5へアップグレード
うちのデスクトップPCでは、ディスクのパーティションを切って色々なLinuxディストリビューションを入れてテストできるように仕込んであります。
今回、CentOS4が入ってるパーティションを、酔狂でCentOS5にyumを使ってアップグレードしてみたくなった。
やってみた結果をメモ。
結論から言うと、「なんとか【できた】っぽいけど、いまいちキレイに動いてない」ってところ。
※※※注意※※※
この【CentOS4からCentOS5へアップグレード】の文章は、前半部分で「うまくいかなかったケース」が記述されています。
もし本文章を参考にされる場合は、いったん最後まで読んで、どこで何をするべきかを把握してください。
書かれている順序どおりに上から実行していくと痛い目を見るかもしれません。
※※※※※※※※
- GPG公開鍵をインストール
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-4
/etc/yum.conf に以下の行を追記plugins=1
/etc/yum.repos.d/CentOS-Base.repo の内容で[base] [updates] [addons]に下記のbaseurlを指定する。[base] baseurl=http://ftp.riken.jp/Linux/centos/$releasever/os/$basearch/ #released updates [update] baseurl=http://ftp.riken.jp/Linux/centos/$releasever/updates/$basearch/ #packages used/produced in the build but not released [addons] baseurl=http://ftp.riken.jp/Linux/caos/centos/$releasever/addons/$basearch/
- その後下記のコマンド実行
# yum install yum-utils # yum check-update # yum update ※この時kernelのアップデートがあるようだったら一度リブートする。 # reboot # package-cleanup --oldkernels ※もしくは下記のような感じに直接古いkernelを削除する # rpm -e kernel-2.6.11-1.1369_FC4 # rpm -e kernel-devel-2.6.11-1.1369_FC4
- ※※※ここから先要注意※※※
この後下記のようにすると、4→5へのアップグレード用意がされて(リポジトリの参照先が4→5に変わって)、yum upgrade でパッケージの入れ替えが行われる模様。# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm # rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm # yum clean all # yum upgrade
がしかし、そう簡単にはいかんかった。
上記の操作は、以下の内容を抑えてから実行すべし。こんな人がいた。(←のリンク先のページから以下に抜粋)
CentOS 4.4 からアップグレードしたので、それについてのメモ。 〜〜中略〜〜 以上、いろいろ試みたがうまくいかないのであきらめた。 (2) CD-ROM からアップグレード 〜〜後略
つまり、上述の作業をそのままやってもyum upgradeがうまくいかなかったのでCD-ROMでアップグレードしたということ。
もうちょい調べて、その後2ch記事にて下記のような記述を発見。yum upgradeでCentos 4.5→5が上手く行ったので報告。 1. 依存性の問題でひっかかるが特に無くても困らないパッケージを極力消す 2. 依存性でエラーを吐くが依存性で削除もできないものをnodepsで消してしまう (自分はgnome-libs、VFlib2なんかを消す必要があった) 3. kudzu, hal, initscriptが古いカーネルとコンフリクトをおこすので、Centos5からkernel-2.6.18を もってきてインストールするか、ソースからインストールして古いカーネル2.6.9パッケージを綺麗に消す。 (centos 4.5最新のkernel-2.6.9-55.ELでも古いので消す必要がある) 4. python-elementtreeがパッケージングの問題で依存性のエラーをだすので、いったんtarで アーカイブしてからpython-elementtreeをnodepsで削除し、tarを展開してもとにもどす。 (入ってるとエラーを出すので困るけど、無いとyumが動かないため) 5. yum upgradeでcentos 5へアップグレード 最初にCentos 5のreleaseパッケージをインストールして、レポジトリをbaseとupdates以外無効に するなどはリリースアナウンスメントにある通りです。 バックアップは忘れずに。
- そこでkernelのリビルドについて下記を参考に作業。
参考3 / 参考4
下記URLからたどって
http://ftp.riken.jp/Linux/centos/
CentOS5 の kernelソース kernel-2.6.18-8.el5.src.rpm をゲット。# rpm -ihv kernel-2.6.18-8.el5.src.rpm
でインストール。その時に下記のようなエラー警告: user mockbuild does not exist - using root 警告: group mockbuild does not exist - using root
が出るかもしれんけど、無視してよい。上記実行後は
/usr/src/redhat/SPECS/
/usr/src/redhat/SOURCES/
にちゃんと上記でインストールしたkernelソース関連ファイルがあるはず。
下記コマンドでkernelをリビルド# rpmbuild -bp --target=i686 /usr/src/redhat/SPECS/kernel-2.6.spec
その後は下記のような感じでkernelのインストールができる模様。# cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i686/ # make menuconfig ※個人的な指定項目 ※ + ファイルシステムサポート ※ + NTFSファイルシステムをサポートするように指定する。 ※ + Plan 9 Resource Sharing Support もとりあえず有効にしておくか。 ※ + SMB、CIFS も。(samba関連) # make # make modules_install # make install
- これを済ませてから、上の2ch記事であったように
python-elementtree の構成ファイルをtarでバックアップ。 python-elementtreeをnodepsで削除 tarを展開してもとにもどす。
として、python-elementtreeがrpmデータベースにない状態でもyumコマンドが動くように仕込みを入れておく。
それから /boot/grub/grub.conf を、先ほどインストールしたkernelからシステムが起動するように書き換えて、grub-install してリブート。# grub-install /dev/hda ※ /dev/hda は手元のシステムに適合するように適宜指定する。 # reboot
起動してきたら# rpm -e kernel
とかやって、kernel依存のパッケージを確認。
kudzu, hal, initscriptなどはおいといて、その他手っ取り早く削除しておけそうなものをあらかじめ削除しておく(iptablesとかrp-pppoeとかlibpcapとか、ね)。で、# rpm -e --force kernel
でkernelのみ削除。 - いよいよアップグレード。
# rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-notes-5.0.0-2.i386.rpm # rpm -Uvh http://mirror.centos.org/centos/5/os/i386/CentOS/centos-release-5-0.0.el5.centos.2.i386.rpm
をやったあと、# vi /etc/yum.repos.d/CentOS-Base.repo
で、gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
とあるところを全部gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
に直しておく。# yum clean all # yum upgrade
ここで依存関係を邪魔するパッケージを逐一削除しながらになる。
依存関係を解決してアップグレードインストールが完了したら、リブートする前に下記をチェック。
・上記までの間に手を加えた二つのパッケージのうち、python-elementtreeが、新たな環境でインストール済みであること。
・「rpm -qa | grep kernel」に通常のkernelパッケージが入ってなければ、手で(rpmコマンドで)入れてしまう。
で。
一応アップグレードは終わったけど。
なーんか起動時に画面に出力されるメッセージに、あんまよろしくないものが見られる。
やーっぱ必要なデータだけエクスポートするなりどっかに退避するなりして、新しく環境をセットアップしなおすことが一番いいね。わかっちゃいたけど(笑
とはいえ。
こうして取り組んだ作業のおかげで、ここに書き記してない失敗だったりを経て、色々初体験と認識の深まりを得た。
異なるバージョンのkernelをrpmで入れ替えたりしたことはあっても、リビルドなんてしたことなかったし。
glibcを違うバージョンに入れ替える、とかそんなとんでもなことをそのうちやってみたいもんだ。
俺みたいにかしこさの足りないやつは実験してちょっとずつ理解を進めていくしかないしね。
最新の10件を表示しています。 コメントページを参照
- SabRHNvhkmMwwRbwsZd -- nomiegzqsol 2009-01-01 (木) 00:57:47
- SabRHNvhkmMwwRbwsZd -- nomiegzqsol 2009-01-01 (木) 01:00:13
- SabRHNvhkmMwwRbwsZd -- nomiegzqsol 2009-01-01 (木) 01:01:43
- bIlNJkAKBAuLMtfyVx -- fvaukn 2010-06-18 (金) 01:35:31
- MCICOBkok -- btyrdjz 2010-06-28 (月) 08:30:42
- HHDrIAiNMBaKfK -- sourpkpe 2010-07-01 (木) 10:17:42