emerge -vauDN @worldなどでapp-portage/portage-utilsなどの更新されないパッケージがある場合の対処法
やり方
emergeをする時に--with-bdeps=yを足して
# emerge -vauDN --with-bdeps=y @world
このようにする
どうでもいいですが--with-bdepsはwith build dependsと覚えたら覚えやすいです
恐らくこれが元になってそうですし
日本語にするとビルド依存も一緒に…でしょうか
やり方を導いた方法
http://www.gentoo.org/doc/ja/handbook/handbook-x86.xml?part=2&chap=1
これを見るにemergeを使う時には--with-bdeps=yを足せばいいみたいですね
もう少し詳しく知りたいので今回はman emergeを読みます
% LANG=ja_JP.UTF-8 man emerge
をしても古くて書いてなかったので代わりに私が--with-bdepsの箇所を翻訳します
原文: --with-bdeps < y | n > In dependency calculations, pull in build time dependencies that are not strictly required. This defaults to ´n´ for installation actions, meaning they will not be installed, and ´y´ for the --depclean action, meaning they will not be removed. This setting can be added to EMERGE_DEFAULT_OPTS (see make.conf(5)) and later overridden via the command line.
日本語訳: --with-bdeps < y | n > 依存関係の計算でまったく必要とされていないビルド時の依存関係の時間を引きます このデフォルトはインストールの実行の時は'n'でそれらがインストールされないことを 意味していて--delcleanの実行の時は'y'でそれらが削除されないことを意味します この設定をEMERGE_DEFAULT_OPTS (make.conf(5)を参考)に足すことで コマンドラインを通った後でこの設定を上書きすることができます
どうやら今回のケースはデフォルトで--with-bdeps=nになっていたから起きたみたいですね
なので
# emerge -vauDN --with-bdeps=y @world
こうすることで
# emerge -vauDN @world These are the packages that would be merged, in order: Calculating dependencies... done! Total: 0 packages, Size of downloads: 0 kB Nothing to merge; would you like to auto-clean packages? [Yes/No] y >>> Auto-cleaning packages... >>> No outdated packages were found on your system.
こうなっていたのが
# emerge -vauDN --with-bdeps=y @world These are the packages that would be merged, in order: Calculating dependencies ... done! [ebuild U ] app-portage/portage-utils-0.10 [0.8] USE="-static" 374 kB [ebuild N ] dev-perl/Text-Unidecode-0.40.0 101 kB [ebuild N ] dev-perl/libintl-perl-1.200.0 489 kB [ebuild N ] dev-perl/Unicode-EastAsianWidth-1.30 18 kB [ebuild U ] app-text/texi2html-5.0-r1 [1.78] USE="unicode%*" 15,037 kB [ebuild U ] x11-misc/imake-1.0.5 [1.0.4] 146 kB [ebuild U ] x11-misc/gccmakedep-1.0.2-r1 [1.0.2] USE="-static-libs% (-debug%)" 0 kB [ebuild U ] dev-python/cython-0.16 [0.14.1] USE="-doc -examples -numpy%" 1,212 kB [ebuild R ] app-text/asciidoc-8.6.5 USE="vim-syntax* -examples -graphviz -highlight -test" 0 kB [ebuild R ] media-gfx/imagemagick-6.7.6.4 USE="X bzip2 cxx jpeg jpeg2k* openmp perl* png svg* truetype zlib -autotrace -corefonts -djvu -fftw -fontconfig -fpx -graphviz -hdri -jbig -lcms -lqr -lzma -opencl -openexr -pango -postscript% -q32 -q64 -q8 -raw -static-libs -test -tiff -webp -wmf -xml (-gs%)" 0 kB Total: 10 packages (5 upgrades, 3 new, 2 reinstalls), Size of downloads: 17,372 kB Would you like to merge these packages? [Yes/No]
こうなりました
余談:ビルドの依存関係とは何か?
訳した中に出てきた
ビルド時の依存関係
これは恐らくebuildのDEPEND変数に書かれたものを指すのだと想います
例えばapp-portage/portage-utilsがどのebuildに依存しているのか調べるには
equeryを使いますがこれは標準では入っていないと思うので
# emerge -va "app-portage/gentoolkit"
これでequeryを使えるようにして
# equery depends "app-portage/portage-utils" * These packages depend on app-portage/portage-utils: sys-auth/pambase-20101024-r2 (app-portage/portage-utils)
するとsys-auth/pambaseに依存していることがわかるのでebuildを見てみると
% view /usr/portage/sys-auth/pambase/pambase-20101024-r2.ebuild
DEPEND="app-portage/portage-utils"
ありました
ちなみにこのDEPENDはビルド時に依存するものを書くものですのでそういうことでしょうね
余談:どうやってequeryが入るパッケージを見つけたのか?
e-fileというコマンドを使います
# e-file equery [~] [I] app-portage/gentoolkit Available Versions: 0.3.0.4-r3 0.3.0.4-r2 0.3.0.4-r1 0.3.0.4 0.3.0.3 0.3.0.2 0.3.0.6-r3 0.3.0.6-r2 0.3.0.6-r1 0.3.0.6 0.3.0.4-r6 0.3.0.5 0.3.0.4-r5 0.3.0.4-r4 0.2.0-r3 0.2.3-r0 0.2.4_rc6-r0 0.2.4.6.1-r0 0.2.0-r0 0.2.2_pre4 0.2.4_rc5-r0 0.3.0_rc9-r0 0.2.0 0.2.2_pre2 0.2.4_rc4-r0 0.3.0_rc8-r1 0.3.0.1 0.2.2-r0 0.2.4_rc3-r0 0.3.0_rc8-r0 0.3.0 0.2.1_rc3- 0.2.4_pre7-r1 0.2.4.5-r0 0.3.0_rc11-r3 0.2.1_rc2- 0.2.4_pre7-r0 0.3.0_rc7-r0 0.3.0_rc11-r2 0.2.1_pre8 0.2.4_pre5-r0 0.3.0_rc6-r0 0.3.0_rc11-r1 0.2.1_pre7 0.2.4_pre3-r0 0.3.0_rc5-r0 9999 0.2.1_pre6 0.2.3_pre3-r0 0.2.4.3-r0 0.2.4_pre7 0.2.1_pre5 0.2.3_pre3 0.2.5_rc10-r0 0.2.4_rc4 0.2.1_pre4 0.2.3_pre2-r0 0.2.4.2-r1 0.3.0_rc9 0.2.1_pre3 0.2.3_pre2 0.2.4.2-r0 0.2.4.6.1-r1 0.2.1_pre1 0.2.3_pre1 0.2.4.1-r0 0.3.0_rc10-r0 0.2.1-r0 0.2.3-r1 0.2.4-r0 0.3.0_rc10-r1 Last Installed Ver: 0.3.0.6-r3(Sat 14 Jul 2012 05:30:20 PM JST) Homepage: http://www.gentoo.org/proj/en/portage/tools/index.xml Description: Collection of administration scripts for Gentoo Matched Files: /usr/bin/equery;
こんな感じになります
ちなみにこのe-fileは
# e-file e-file * app-misc/pfl Available Versions: 1.8.1-r0 1.8-r1 1.8_p20081201-r0 1.8.1_p20081201-r0 Matched Files: /usr/bin/e-file; [I] app-portage/pfl Available Versions: 2.3-r1 2.3 2.2 2.1-r1 2.1 2.0 1.8.1-r1 1.8.1-r0 Last Installed Ver: 2.3(Sat 26 May 2012 10:48:53 AM JST) Homepage: http://www.portagefilelist.de Description: Searchable online file/package database for Gentoo Matched Files: /usr/bin/e-file;
これを見るに
# emerge -va "app-portage/pfl"
で入るみたいです
app-misc/pflも書いてありますが私の環境には存在していないので入りません