なんとな~くしあわせ?の日記

JavaとかAWSの設定とかをメモする技術ブログ

新年明けましておめでとうアップデート

録画鯖構築以来カーネルとOSのバージョンをアップデートしていなかったFedoraですが、正月でちょっと時間あるし、Fedoraの新しいプロジェクトが面白そうであったのでバージョンを15から17に上げた。
本来ならば新しいバージョンのFedoraのRPMとリリースノートをダウンロード&インストールして、yumでupdateをかければ終了するはずなのですが、いろいろ落とし穴があったために手動でのアップデートは不可能と判断し、素直に(?)CDを使ってこれまでのシステム領域を潰して新しい領域としました。(というのも肝心な録画データはシステムが乗っているドライブには入っていないし、自分が作成したプログラム等はgitに上げているから、これまでのシステムが無くなっても別に困らないからです…)

Fedoraのアップデートについては以下のWikiが詳しいようです
Upgrading Fedora using yum - FedoraProject

落とし穴1:grubの仕様変更

最初にハマったのはgrubでした。というかハマったことに気づいてなかった。
Fedora15ではgrubが使われているのに対して
Fedora16,17ではgrub2が使われている

・簡単な違いの説明
grubの場合:
/etc/grub.conf を編集することで
起動するカーネルとオプションを指定

grub2の場合:
/etc/default/grub を編集して起動するカーネルとオプションを指定
grub2-mkconfigを使用して /etc/grub2.cfg にgrub2用の設定ファイルを生成

grubとgrub2は出てくる画面のデザインも違います、grub2で起動した場合BIOS画面が出てきた後にWelcom GRUB!みたいな文字が出ます。
自分の環境ではgrubとgrub2が共存してしまい、困ったことになりました。grubってどうやってアンインストールするの…?

参考:OSSはアルミニウムの翼で飛ぶ: Fedora16 grub2の起動メニューを編集

最初grub2が必要なことがわからずにごちゃごちゃやってました…

落とし穴2:ディレクトリの構造変更
Fedora17では /bin, /sbin, /lib, /lib64以下にあったものが全て /usr 以下に配置されます。
Fedora16から17にアップデートする際にはdracutというコマンドを使って、配置を変更する

変更のやり方については以下のサイトが参考になりました
やぎやぎブログ:[linux]fedora 16 → 17 アップグレード - livedoor Blog(ブログ)

…このdracutの'--add convertfs'オプションがどうしても自分の環境では動作しなかった。
最初はgrub1でdracutを使おうとしていたので、それができなかった原因だと思います。

まずはgrub2で起動できるようにして、そのあとdracutを使えばうまくいくのではないかと思います。
(今回はそれをやってると時間ないし面倒なのでCDぶっぱで終わらせました)

落とし穴3:yumが動かない

やっとこせで Fedora15→Fedora16にアップデートした時に、いきなりyumが動かなくなった
「RuntimeError: cannot load dispatch table from pyexpat」???
やめてくれよ(絶望)…

ここに同じ症状に陥った人がいた
fedora 17 yum error - Ask Fedora: Community Knowledge Base and Support Forum

pythonのソースをちょっと見たところ、
"/usr/lib/python2.7/site-packages/yum/misc.py" で cElementTree のクラスをどっかから
importするときに落ちている感じ。動的言語ならではのエラーですね、まあすぐデバッグできたけど…

yumが動かないので、python用パッケージ管理システムのpipを手動でインストール。
参考サイト:pipの使い方 - そこはかとなく書くよ。

$ easy_install pip
$ pip install cElementTree

これでcElementTreeは動いたしyumも使えるようになった。

所感

yumは動かなくなるし、ディレクトリ構造は変わりまくるし、grubはわけわかんねえし…うーん、このディストリ
だがそれがいい(AA略

今一番注目しているのは下のプロジェクトです
MinGW/CrossCompilerFramework - FedoraProject

なんと64bit向けのWindowsアプリがLinuxで作れます
OSX向けのクロスコンパイル環境も予定中だとか・・・

前に紹介されてたdarlingとは無関係なんだろうか
本の虫: Mac OS XのバイナリをGNU/Linuxで実行するソフトウェア