Gentoo Linuxをアップデート

梅雨も明け、気持ちよく晴れた三連休、絶好のアップデート(コンパイル)日和でした。
備忘録もかねて手順をメモしておきます。

下準備

まず、プロファイルを切り替えます。

# eselect profile list
# eselect profile set (希望するプロファイルの番号)

次にPortageツリーの同期をとります。ついでにPortageも最新版にしました。

# emerge --sync
# emerge portage

アップデートの前にどの様な更新が行われるかを確認しておきます。

# emerge -uDNpt world

ここでBlockが発生している場合は対処をしておきます。私の場合はcoldplug、ezstream、eselect-emacsあたりをunmergeしました。
また、望まないパッケージが導入されないか確認します。今回はmplayerのxscreensaverのUSEフラグが立っていた関係でX関連のパッケージが導入されそうだったのでUSEフラグの設定を変更しました。

SYSTEMの更新

いきなり全体を更新してもいいのですが、対象にgccglibcが含まれていたので一旦SYSTEMを更新します。念のため実行前には内容を確認しておきました。

# emerge -uDNpt system
# emerge -uDN system

ここでしばらく放置…。
気がついたらcracklibのコンパイルでこけていました。メッセージに従って、

# FEATURES=-unmerge-orphans emerge cracklib

としたところ問題なく完了しました。

# emerge --resume

で再開しつつ再び放置します。

全体の更新

emerge -uDN world

してひたすら放置します。

設定ファイルの更新

dispatch-confを使って更新します。自分が書き換えた覚えのあるもの以外は、新しいものを使うようにしました。

ちょっと手直し

ここで、ちょっと用があったためmysqlapacheを起動しようとしたのですが、mktempが無いとエラーが出ました。ネットで検索するとmktempの機能がcoreutilsに吸収された関係で不具合が起きている模様。

# emerge coreutils

で直りました。
もう一つ、expatのバージョンがあがった関係でapacheが起動しないという問題が発生しました。

# emerge expat
# revdep-rebuild -X --library libexpat.so.0

として修正しました。

これで大体の更新は終わったのでこの辺で一度再起動し、起動時にエラーが起きていないか確認しておきます。
確認した結果、coldplugの起動スクリプトへのリンクが残っていてエラーとなっていたため、

# rc-update del coldplus

しました。

カーネルコンフィグとコンパイル

さて、ここからが最大のヤマ場(苦笑)であるカーネルのコンフィグです。eselectを使って最新のカーネルに切り替えた後、

genkernel --menuconfig all

で、ひたすら設定していきます。あとはmenuconfigを保存終了すれば勝手にコンパイルしてくれます。

ブートローダーの修正と再起動

grub.confに新しいカーネルの設定を加えて(祈りながら)再起動すれば完了です。