2007年11月12日月曜日

Fedora7->Fedora8

え〜、苦労しました>挨拶
私が学会で仙台に行っている間にFedora8がリリースされました。絶対遅れるだろうと思ってたんですけれどねぇ。予想に反して(こら)予定どおりリリースされたようです。
そうとなればインストールしない訳には参りません。さっそくfedora-releaseパッケージをFedora8のサーバからDL&インストールし、yum updateを実行。
が、失敗。というか、$releaseverが7のまま。これじゃ意味がない。今までだとfedora-releaseパッケージを更新するだけでいけてたのに・・・と不思議に思いながらも、面倒なので/etc/yum.repos.d/fedora.repoを直接編集し、強引に8のリポジトリを見にいくように修正。
で、再度yumを実行。今度はきちんと8のリポジトリを参照し、パッケージのヘッダをDLし始めました。
・・・長い。こりゃ久々に1000単位の更新になりそうやな〜と身構えていると、案の定1300ちょっとのパッケージが。
ただ、意外なことに依存性の欠如による更新処理の続行不可ということは起きませんでした。大抵yumでアップグレードをしようとすると出るんですけれどね。珍しいな〜と思いましたね。
で、1.4GBのパッケージ群をちまちまDLしまして、いざ更新作業・・・と思いきや、なんとここにきてエラーがOrz
依存性チェック、トランザクションテストの実行後、解決不能な依存性があるとか。なんでやねんと思いつつ、表示された依存関係にあるパッケージとメッセージをぐぐる。
すると、あっけなくヒット。どうもFedora7から8へyumでアップグレードする場合に発生するエラーらしく、解決策も示してありました。
というか、さらにぐぐればUpgrading Fedora Using Yumにご丁寧にyumでのアップグレード方法が書いてありました。もっと早くから知っておきたかったぜ・・・。
ちょうどいいサイトが見つかったことですし、ここの通りに実行しようってことで実行したところ、思いも寄らぬエラーが!
なんと、インストール作業が始まった直後、メモリ確保に失敗してセグメンテーション違反でアボート。思わず
「ねーよwww」
と叫んでしまいました(ぉ いや、確かに私はごちゃごちゃと色々アプリケーションは立ち上げてますし、空きメモリは多くないです。ブラウザも立ち上げてましたし(Firefoxは起動時だいたい100MB喰っている)、yum実行中は実メモリ730MB/1GB、スワップは350MB/512MBの使用状況でした。
で、yumが落ちたあと、実メモリが300MB、スワップが120MB程度空きました。てめーどんだけ喰ってたんだと。
今までもyumでアップグレードしたことはありますし、2000パッケージくらいの更新も経験した事があります。当時は実メモリが512MBだったはずです。いくらなんでも喰いすぎじゃねーかと。
で、困ったことに中途半端にインストール処理が実行されたせいで古いパッケージと新しいパッケージが混在し、yumが失敗するようになってしまいました。インストールしようとしても「既にインストールされています」とか出ちゃう訳ですな。
仕方ないので、該当のパッケージを手動でrpm --forceでインストールする事に。
これが地味でしんどい作業になりましたね・・・。パッケージ数が多いため、yumの1度の実行に5分程度掛かります(依存性解決の計算が長い)。でインストールプロセスを実行し、失敗したパッケージを手動で上書き。手動なため依存性を地道に解決する必要があり、これまた依存性を調べるのに時間が多少掛かります。
そんなこんなで、地味な作業に時間を奪われ、仙台から帰ってきた日はほとんどパッケージを更新できないまま終えざるを得ませんでした。次の日は朝から結婚式でしたしね。2時まで頑張りましたが諦めて寝ることに。
そして結婚式から帰ってきた昨日、再び更新処理に取りかかることに。前日の続きで地味な作業をこつこつ。
無事混在していたパッケージの更新が終わり、yumが実行可能に。ただ、yumは実行可能となりましたが、8がリリースされた直後ということで修正パッケージが既に発生。それをDLする羽目に。
それくらいならまぁいいかと思ってたのですが、運悪く海外のサーバを見に行ったため遅い。100KB/s出ないんだから洒落にならない。ミラーを変更してみてもどうやら更新が出たばかりなのか見つからないとかでyum途中終了。こうなると1000近い依存性チェックが発生するため仕方なくDLを待つことに。
たった10個の追加パッケージをDLするのに15分程度掛かってしまいました。その間メモリ不足になってはいけないとブラウザも起動しませんでしたから退屈でした^^;
で、DLも終えてインストールプロセス実行。無事実行されてるな、そう思っているとselinux-policy-targetedパッケージの更新で処理中断。どうもポリシーの書き換えを行っている模様。
ただ、長い。長すぎる。確かにポリシーの書き換え処理は長いけれど、これは長すぎるだろう。だって2時間待っても終わらないんだもん。
あまりに不自然ということで、yumプロセスを^C+cで終了。再度実行すると、また出ましたパッケージ混在。
鬱陶しかったのでselinux-policyパッケージを削除。どうせselinuxはPermissiveモードでしか動作させてないし、個人使用しかしないOSならさほど必要ないだろうと。
で、削除して再度プロセス続行。selinuxのポリシー書き換えまでに1000近くの更新は終わっていたのが幸いし、残りは100個ちょっと。ただ、ここからがまた地味に大変でした。
というのも、混在していたパッケージを手動上書きしていたわけですが、なんか芋づる式に混在パッケージが増えてくる。ほんと地味な作業で大変でした。モチベーションも下がるし。
で、ようやく100個を切ろうかとしたとき、再び悪夢が。メモリ確保に失敗s(ry
正直、まさかと思いましたね。100個程度の更新なら割とよくやってたため、その時はブラウザ起動してたんですよね。油断してました・・・。まさか再びメモリ不足に陥るとは。
噂によるとyumの実行速度が向上したようですが、メモリの使用量は反比例してめがっさ増えたんじゃないだろうか。ほんと無茶だぞこのメモリ使用量。1GBで足りなくなるとかありえねぇ。
で、こうなるとやっぱり手動で上書きの処理が発生する訳で・・・。そんなこんなを繰り返し、なんとか更新処理が終わったのが夜中の1時すぎ。更新処理だけで丸々2日費やしてしまいましたOrz これならLiveCDでも作ってネットワークインストールでちゃんと更新シーケンスを実行した方が早かった気がしてきたよ。負けた気分。
続いて、Fedora8で追加された基本パッケージのインストール。Fedora8ではサウンドサーバがPulseAudioを標準としていますのでそれのインストール。これはまぁ特に問題なく終了。Fedora7ではうまく設定できなかったのでどうなるかな〜と思いつつwkwkしながら再起動。
ブート後、グラフィカルブート失敗。まぁ、カーネルを更新したけれどfreshrpmsがまだ8に対応していないようでドライバを更新していなかったので予想通り。ただ、予想ガイだったのはFedora7のカーネル用のモジュールをdkmsにより現在のカーネルに適用してくれたこと。起動が少々遅くはなりましたが、ドライバはきちんと当たった状態でX(GDM)が起動してくれました。これは嬉しい誤算でしたね。
で、無事起動したはよかったのですが、ここでまたトラブル発生。なんと、音が一切でない。いやー、Fedora7のときはPulseAudioがうまく設定できなかったからある程度それも予想はしていたのですが、まさか音が一切鳴らないし、ALSAを利用するようにしておいたアプリケーションが全て鳴らないというのは驚きました。dmix無効にしなくてもいいじゃねぇかよと。
ただ、ひょっとしてドライバに不具合があるのかもしれないと思い、サウンドカードの検出を実行。テストサウンドを鳴らしてみると、なんとこれが鳴るんですね。鳴ってるじゃねーかよと。
これはますます困る。テストサウンドが鳴るということは十中八九こちらの設定がまずいということ。ただ、調べようにも2時を回っていたのでダウン。次の日へ持ち越しました。
そして今日、サウンドの設定に取りかかりました。まず確認すべきは、ほんとにサウンドは鳴らないのかどうか。一旦rootユーザでログインし、試してみることに。
するとどうだろう。rootユーザはふっつーに音鳴ってるんですね。意味わかんねぇ。
続いて一般ユーザでpulseaudioを起動。失敗。正確には、pulseaudioがALSAデバイスは検出しているけど、デバイスにアクセスで来ていないらしい。
となると、ユーザの方に問題があるということになります。つーわけで、新規にユーザを作成し、そちらはpulseaudioが正しく起動するのかをチェック。
するとやっぱり失敗。ということで、一般ユーザに対する設定が足りていないと目星をつけ、エラーメッセージをぐぐって海外の掲示板を漁り、一般ユーザに権限を与える処理を行っていそうな解決策を提示しているサイトをチェック。
すると1件発見。どうやら/dev/snd/以下のデバイスと/dev/mixerデバイスに権限を与えればいいらしい。
試しにchmod 777を実行すると、あっけなくpulseaudio起動。ただ、起動しても、Fedora7の頃は音飛びが発生していたのでまだ油断できません。適当にいくつかの音を再生してみました。
するとどうでしょう(劇的ビフォーアフター風)! 何の問題もなく音が再生されているではありませんか!
これでなんとか各設定が終了しました。まだどこかで問題は発生しそうでなりませんが、なんとか使う分には問題なさそうです。Fedora8になってアイコンなどのテーマが刷新され、柔らかい雰囲気になっています。壁紙などもおとなしいですね。
ふむ。Fedora8になってx86_64パッケージも充実してきて、i386パッケージはだいぶ減ってきたみたいだし、新規で入れ直したらもっとトラブルは少ないだろうな。
あ、調べたところ、yumのアップグレードで発生するエラー(一番最初に出くわしたやつ)は64bit版のみで発生するようです。ま、解決法が書いてあったのでこれは知れた問題ですけれどね。まだ64bit版は使いどころが難しいということでしょうかね。ぼちぼち普及して来るとは思います。早いところFlashのライブラリが64bitに対応してくれないかねぇ。これが32bitだからFirefoxも64bitにできねぇよ。ニコニコできなくなるもん(ぇ
さて、今回の奮闘記はこんな感じです。疲れはしましたが、正直Fedoraの更新はこれくらいやってくれないとつまらないと心のどこかで思っていたりもするw やっぱ銅鑼ブルでも起こらないと調べたりしないからなぁ。
ほんとは時間ないんだけどね^^; 明日明後日の2日間で熊本の学会スライド完成させないといけないし、明日はTAで3時間弱持ってかれるし・・・。
あ、ほんとにやばいかも。ここを越えたら・・・、あぁ、会社の課題提出だOrz 70点以上がボーダーになっちゃったからなぁ・・・。これを帰ってきて速攻片付けないといけない。
HAHAHA・・・。20日過ぎるまでは休む暇が与えられないな・・・。チックショーーー!!!Orz