slang と ncurses という二つのよく似た機能を提供するライブラリがある。 今日、emerge --sync して emerge -auv --deep world してみたら、下記のようなエラーが発生。
!!! Problem resolving dependencies for app-misc/mc from @selected ... done! !!! The ebuild selected to satisfy "app-misc/mc" has unmet requirements. - app-misc/mc-4.7.5.2::gentoo USE="X edit gpm (multilib) ncurses nls slang -samba" The following REQUIRED_USE flag constraints are unsatisfied: exactly-one-of ( ncurses slang ) (dependency required by "@selected" [set]) (dependency required by "@world" [argument])
要は、 mc (midnight commander)をインストールするには、ncurses と slang のどちらか一方だけを選べ、とのことらしい。目的が同じライブラリなので、それも至極当然のことだ。私の場合、両方とも USE フラグに登録してあったのが問題なのだ。 というわけで、slang と ncurses のどちらかを USE フラグから外すことにした。equery d で依存関係を調べてみると、ncurses に depend しているものは多いが、slang に depend しているのは、下記の通り、3つしかなかった。
* These packages depend on slang: app-editors/nano-2.2.5 (slang ? sys-libs/slang) app-misc/mc-4.7.0.3 (slang ? >=sys-libs/slang-2) sys-apps/util-linux-2.19.1 (slang ? sys-libs/slang)
そして、equery u nano とかしてそれぞれの USE フラグをチェックすると、いずれも ncurses も評価するようになっている。というわけで、slang を USE フラグから外して、アップデートしてやればよい。
emerge -auv --update --newuse world
解決である。
※コメント投稿者のブログIDはブログ作成者のみに通知されます