emergeうどんワールドとの戦い

参考資料 http://bpaste.net/show/225618/
emergeは聖徳太子じゃないみたいなので、今後はややこしいお願いは単独でしようと思いました。

libvdpau

emerge -p1u xorg-serverを眺めてみて、目に止まったxcb周りから攻めてみることに。
conflictせずにupdateできるのを手探りで探した結果、libxcb->xcb-proto->xpybにたどり着いた。
もうひとつ片付けておこうと思ってlibX11もupdate。
その後xorg-serverと一緒にlibvdpauも難なく入りましたとさ。

perl

$ sudo emerge -1u perl

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] dev-lang/perl-5.12.4-r1

WARNING: One or more updates have been skipped due to a dependency conflict:

dev-lang/perl:0

  (dev-lang/perl-5.16.3::gentoo, ebuild scheduled for merge) conflicts with
    dev-lang/perl[-build] required by (dev-perl/Error-0.170.160::gentoo, installed)
  (dev-lang/perl-5.16.3::gentoo, ebuild scheduled for merge) conflicts with
    dev-lang/perl[-build] required by (dev-perl/Cairo-1.90.0::gentoo, installed)
  (dev-lang/perl-5.16.3::gentoo, ebuild scheduled for merge) conflicts with
    dev-lang/perl[-build] required by (dev-perl/Net-Daemon-0.480.0::gentoo, installed)
  (dev-lang/perl-5.16.3::gentoo, ebuild scheduled for merge) conflicts with
    dev-lang/perl[-build] required by (dev-perl/File-MimeInfo-0.150.0::gentoo, installed)
$ sudo emerge -1u Error Cairo Net-Daemon File-MimeInfo

Calculating dependencies... done!
[ebuild     U  ] dev-perl/Cairo-1.103.0 [1.90.0]
[ebuild     U  ] dev-perl/File-MimeInfo-0.170.0 [0.150.0]
[ebuild     U  ] dev-perl/Error-0.170.210 [0.170.160]

WARNING: One or more updates have been skipped due to a dependency conflict:

dev-lang/perl:0

  (dev-lang/perl-5.16.3::gentoo, ebuild scheduled for merge) conflicts with
    dev-lang/perl[-build] required by (dev-perl/extutils-depends-0.304.0::gentoo, installed)
$ sudo emerge -1u extutils-depends

[ebuild  r  U  ] dev-lang/perl-5.16.3 [5.12.4-r1]
[ebuild     U  ] dev-perl/extutils-depends-0.305.0 [0.304.0]
[ebuild  rR    ] dev-perl/Net-Daemon-0.480.0-r1
[ebuild  rR    ] dev-perl/PlRPC-0.202.0-r2
[ebuild  rR    ] dev-perl/Error-0.170.210
[ebuild  rR    ] dev-perl/Cairo-1.103.0
[ebuild  rR    ] dev-vcs/subversion-1.7.14

唐突にゴールした。

cabal

  (dev-haskell/cabal-1.16.0.3::gentoo-haskell, installed) pulled in by
    >=dev-haskell/cabal-1.8:0/1.16.0.3= required by (dev-haskell/hoogle-4.2.16::gentoo-haskell, installed)

subslot使ってますね。
https://wiki.gentoo.org/wiki/Sub-slots_and_Slot-Operators
これこそ自動で解決してくれそうだけど・・・まあいいや。
ここまでの流れから、updateしたいパッケージにバージョンを明示して、そのsubslotに依存してるパッケージも同時に指定してみる。

$ sudo emerge -1 =dev-haskell/cabal-1.18.1.2 hoogle

いけた。けれど他にも詰まり、ちょうどUSEフラグ変更して一式emergeし直しだったので、haskell周りを少しworldから除外して作業することに・・・
# ghc消す必要はなかったなー

ruby

ひねくれた依存解決をした結果ruby2.1を無理に入れようとしていると思い込んでいたのだけど、よく見るとruby2.1がworldに入っていることになっている。eixで確認したら確かに(~)amd64になってる。
以前mikutterを入れたときにautounmask-writeして、>=ruby-1.9.3_rc1 ~amd64がaccept_keywordsに入ってた。。。
mikutterに必要なrubyはstableになっているので、これを消して解決。

仕上げ

依存解決に時間かかるからって理由で--deep付けずにいじっていたので、それぞれ途中でこけたりしてます。
ので改めてemerge -uDN @world。あとさっき見かけた--with-bdeps=yも付けてみる。
まだ途中だけど多分無事に終わる。終わって。