新年明けましておめでとうアップデート
録画鯖構築以来カーネルと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で実行するソフトウェア