PC/NETのetcetra/2007-08-25 のソース

※※このサイトは2012年頃より更新を停止しています。※※
**sylpheedとbsfilter
2007-8-23時点でbsfilterは1.0.15が安定版最新だけど、1.0.16rc2が出てた。
WindowsXP sp2環境でsylpheed 2.4.4 に bsfilter 1.0.16rc2 で迷惑メールをフィルタしようとしたところ、なんだかbsfilterの挙動が1.0.15と1.0.16rc2で変わってるっぽかった。
~1.0.16rc2では「迷惑メール指定」を実行したフォルダに、bsfilterの判定関連の設定ファイルが作られてしまう!
bsfilterの実行ファイルを設置してるところに判定関連の設定ファイルが生成されるものと期待していたから、その挙動に最初戸惑った。
安定版1.0.15を使ったら期待通りの動作をした。とりあえずそれを使おう。
1.0.16の安定版も挙動がこのままだったら、旧式の挙動にするためのオプションとか用意されるかな?されないと困るな。

**VMWare + CentOS5のネットワークインストール
+VMWareは先にインストールしておく。
+CentOS5のネットワークインストール
[[参考:ティー・ブレイク -  CentOS5をネットワークインストールしてみる>http://plaza.rakuten.co.jp/cafe10/diary/200705040001]]
CentOS5ではISOファイルが6枚にもわたる。いちいち焼いてられん。そこでネットワークインストール。
++DHCPでネットワーク接続できる環境で、下記からboot.isoを持ってくる。
http://ftp.riken.jp/Linux/centos/5/os/i386/images/
++VMWareのCD-ROMのデバイスにboot.isoを指定してパワーオン。
++プロンプト「boot:」でENTER
++Choose a LanguageでJapanese
++Keyboard Typeでjp106
++Installation MethodでHTTP
++Configure TCP/IPではIPv6の設定は無効にしておく(俺は使わない)
++HTTPでファイルダウンロード先ホストは ftp.riken.jp
++Directory は Linux/centos/5/os/i386
+ネットワーク設定
プライベートネットワークでDHCPによってIPアドレスもらってるなら、下記参考にbridge設定に。
[[いっきログ - VMwareおもしれぇぇーーーーー!!!>http://blog.proj.jp/ituki/20051105.html]]
上記ページより引用
 Windowsのネットワーク設定のプロパティの全般タグの中に
 「VMware Bridge Protocol」というのが追加されます。
 それをオンにして、そのプロパティのVMnet Numberを0にすれば
 いきなり使えます


**CentOS4からCentOS5へアップグレード
うちのデスクトップPCでは、ディスクのパーティションを切って色々なLinuxディストリビューションを入れてテストできるように仕込んであります。
今回、CentOS4が入ってるパーティションを、酔狂でCentOS5にyumを使ってアップグレードしてみたくなった。
やってみた結果をメモ。
結論から言うと、「なんとか【できた】っぽいけど、いまいちキレイに動いてない」ってところ。
~&color(#ee0000,#ffffff){※※※注意※※※};
&color(#ee0000,#ffffff){この【CentOS4からCentOS5へアップグレード】の文章は、前半部分で「うまくいかなかったケース」が記述されています。};
&color(#ee0000,#ffffff){もし本文章を参考にされる場合は、いったん最後まで読んで、どこで何をするべきかを把握してください。};
&color(#ee0000,#ffffff){書かれている順序どおりに上から実行していくと痛い目を見るかもしれません。};
&color(#ee0000,#ffffff){※※※※※※※※};
~[[参考1>http://www.atmarkit.co.jp/flinux/rensai/linuxtips/866fc4to5.html]] / [[参考2>http://d.hatena.ne.jp/t777/]] / [[参考3>http://pocketstudio.jp/centos/#4_2_2]]

-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
-&color(#ee0000,#ffffff){※※※ここから先要注意※※※};
この後下記のようにすると、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
がしかし、そう簡単にはいかんかった。
&color(#ee0000,#ffffff){上記の操作は、以下の内容を抑えてから実行すべし。};
~[[こんな人>http://k-ishik.seesaa.net/article/40506494.html]]がいた。(←のリンク先のページから以下に抜粋)
 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>http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35103&forum=10&start=8]] / [[参考4>http://odacle.cocolog-nifty.com/d/2005/06/centos_kernel_b.html]]
下記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を違うバージョンに入れ替える、とかそんなとんでもなことをそのうちやってみたいもんだ。
~俺みたいにかしこさの足りないやつは実験してちょっとずつ理解を進めていくしかないしね。

#pcomment
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS