yum vs apt

研究室のバックアップ用計算機を計算機係として更新して欲しいということだったので作業。Samba 機は mitsu-ko くんの担当だったはずだが、これは Linux なので自分の担当。

バックアップさえできれば OS はなんだってよい、ということだったが、入れ替えるのも面倒だし、Gentoo なんかまかり間違っていれてしまった日にはこの先何年も自分だけで管理するはめになるのは避けたい、ということで、いま入っている Red Hat 9 のまま Fedora Legacy でメンテナンスすることにして現状放置するつもりだったのだが、NAIST 全学とアカウントを同期したいので LDAP 化してほしい、ということなので、紆余曲折の末 CentOS 4.0 に更新。

ぐぐってみたところ、直接 Red Hat 9 から CentOS 4.0 に更新した人はいないっぽいので、成功報告のある CentOS 3.4 に途中下車。Red Hat 9で LDAP に参加できないかと試行錯誤してみたのだが、どうも openldap-2.2 系でないとうまくいかないようで、Red Hat 9 で openldap-2.2 系を使おうといろいろやったのだが、依存関係も複雑になるし Red Hat 9 だけ数台残しても管理が面倒なので、mitsu-ko くんの希望で CentOS 4.0 が入った Samba 機にそろえたのだ。

といったら聞こえはいいが、SUSEDebian を入れようとしたらブートできるデバイスが HDD 以外には FDD とネットワークしかなく、(Gentoo を除いたら)手軽に更新できそうだったのは、既存環境への CentOS のアップグレードインストールくらいしか選択肢がなかったせいだったり。

更新(にかぎらずパッケージ管理には)は yum というツールを使うらしく、あまり手間はかからなかったのだが、これ信じがたいくらい遅い。毎回アクションごとにネットワークにつなぎに行ったり、同じ操作を2回するのに毎回10-15分くらい依存関係計算したり。CentOS 3.4 にしてから 4.0 にあげるのは apt を用いたら、依存関係の処理なんかはかかって10秒。yum ってソースもダウンロードできないしなんでこんなものが CentOS (だけではなく他の Red Hat Enterprise LInux 互換のディストリビューション)で標準になっているんだ?

Gentoo のパッケージ管理ツール emerge もかなり遅いという認識だったが、この yum と比べると20倍以上高速に動作してそうだ。ただしコードを見た感じ(emerge も yumPython というプログラミング言語で書かれている) yum はかなりきれい。

emerge は、Gentoo で自分が担当するパッケージのバグ報告を受けて調べるてみると、パッケージのバグでなくて emerge のバグだった、なんてことがときどきあり、直すのに Python の部分をいじる必要があって時々コードを見るのだが、なんか汚い。チームで開発するようになってから書かれた部分はきれいなのかもしれないが、いつも書き直したいという声が挙がるのと無関係ではなかろう。