2006-03-06 昼寝は短時間熟睡 [長年日記]
_1 GCC アップデート
今回は3.3.6から3.4.5へのアップデートなのでGCCアップグレードガイドの3. GCC-3.3から3.4へのアップグレードを参考に作業をすすめる.途中次にこのコマンドを実行しろとメッセージが出るので迷うことはないと思われる.
ハマったところだけ
# revdep-rebuild --library libstdc++.so.5 -- -p -v
を実行すると
Calculating dependencies !!! All ebuilds that could satisfy "=app-dicts/kasumi-0.10" have been masked. !!! One of the following masked packages is required to complete your request: - app-dicts/kasumi-0.10 (masked by: ~x86 keyword)
と出た.どうもACCEPT_KEYWORDSを指定して入れたパッケージを再ビルドしようとしてできなかった模様.revdep-rebuild自体にACCEPT_KEYWORDSを指定しても良さそうなのだが,何をされるか分からないので避けた.
どうやらこういうファイルは/etc/portage/package.unmaskに書けばマスクが解除されるらしいので以下のように書いてみた.
# cat /etc/portage/package.unmask =app-dicts/kasumi-0.10 =media-gfx/zphoto-1.2-r2
がどうもうまくいかない.
コレも
app-dicts/kasumi media-gfx/zphoto
コレも
app-dicts/kasumi-0.10 media-gfx/zphoto-1.2-r2
コレも
>= app-dicts/kasumi-0.10 >= media-gfx/zphoto-1.2-r2
ダメ.
上の2つのパッケージをダウングレード後アップグレードしなおしたらrevdep-rebuildに引っかからなくなった.きっと3.4.5でコンパイルされたので,revdep-rebuildの対象から外れたのだろう.これにならいmaskされているパッケージを3.4.5でリビルドし直すことにした.本来なら/etc/portage/package.unmaskに書けばrevdep-rebuildコマンドを1回実行するだけであとは自動でやってくれそうなのだが上の通りうまくいかなかったので1つ1つリビルドを行った.うーん面倒だ.
そのうち
Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.
と出るようになったので,-pなしでrevdep-rebuildを実行.
# emerge -pv --oneshot sys-libs/libstdc++-v3 # emerge -aC '=sys-devel/gcc-3.3*'
以上で3.3.6から3.4.5へのアップデート完了.package.unmaskさえちゃんと書ければ,それほど面倒ではないと思われる.次は4.1かな.