{{tag>gentoo linux}} # gentoo の perl のアップデートはとても大変 いつ stable に落ちてきたんでしょう。 ``` [ebuild U ] dev-lang/perl-5.24.1-r1:0/5.24::gentoo [5.22.3_rc4:0/5.22::gentoo] USE="berkdb gdbm -debug -doc -ithreads" 0 KiB ``` なんか前も perl のバージョン上げたときにエラい苦労した気がするんですよね…… ## とりあえずうどんワールド とりあえず見てみます。 ``` # emerge -upvDN world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U ] dev-lang/perl-5.24.1-r1:0/5.24::gentoo [5.22.3_rc4:0/5.22::gentoo] USE="berkdb gdbm -debug -doc -ithreads" 0 KiB [ebuild rR ] perl-core/File-Temp-0.230.400-r1::gentoo 0 KiB [ebuild U ] app-admin/perl-cleaner-2.25::gentoo [2.20::gentoo] 0 KiB [ebuild U ] virtual/perl-Test-Harness-3.360.100_rc::gentoo [3.350.100_rc::gentoo] 0 KiB [ebuild U ] virtual/perl-Data-Dumper-2.160.0-r1::gentoo [2.158.0-r1::gentoo] 0 KiB [ebuild rR ] virtual/perl-File-Temp-0.230.400-r5::gentoo 0 KiB [ebuild r U ] dev-libs/libevent-2.1.8:0/2.1-6::gentoo [2.0.22:0/0::gentoo] USE="ssl threads -debug (-libressl) -static-libs {-test}" ABI_X86="(64) -32 (-x32)" 0 KiB [ebuild rR ] net-misc/ntp-4.2.8_p9::gentoo USE="ipv6 readline ssl threads -caps -debug (-libressl) -openntpd -parse-clocks -samba (-selinux) -snmp -vim-syntax -zeroconf" 0 KiB [ebuild U ] net-fs/nfs-utils-1.3.4::gentoo [1.3.1-r5::gentoo] USE="ipv6 libmount nfsidmap nfsv4 tcpd uuid -caps -kerberos -nfsdcld -nfsv41 (-selinux)" 0 KiB [ebuild U ] sys-apps/openrc-0.24.2::gentoo [0.23.2::gentoo] USE="ncurses netifrc pam unicode -audit -debug -newnet (-prefix) (-selinux) -static-libs (-tools%)" 0 KiB Total: 10 packages (7 upgrades, 3 reinstalls), Size of downloads: 0 KiB The following packages are causing rebuilds: (dev-lang/perl-5.24.1-r1:0/5.24::gentoo, ebuild scheduled for merge) causes rebuilds for: (perl-core/File-Temp-0.230.400-r1:0/0::gentoo, ebuild scheduled for merge) (virtual/perl-File-Temp-0.230.400-r5:0/0::gentoo, ebuild scheduled for merge) (dev-libs/libevent-2.1.8:0/2.1-6::gentoo, ebuild scheduled for merge) causes rebuilds for: (net-misc/ntp-4.2.8_p9:0/0::gentoo, ebuild scheduled for merge) ``` あぁ~なんかもう見た目にヤバいやつ、いつも出てこないようなメッセージが末尾に……まぁ、だからといって放置しておくのもアレなので。とりあえずいってみます。 ``` # emerge -uDN world ``` ほんで。 ``` * Messages for package dev-lang/perl-5.24.1-r1: * UPDATE THE PERL MODULES: * After updating dev-lang/perl the installed Perl modules * have to be re-installed. In most cases, this is done automatically * by the package manager, but subsequent steps are still recommended * to ensure system consistency. * * You should start with a depclean to remove any unused perl dependencies * that may confuse portage in future. Regular depcleans are also encouraged * as part of your regular update cycle, as that will keep perl upgrades working . * Recommended: emerge --depclean -va * * You should then call perl-cleaner to clean up any old files and trigger any * remaining rebuilds portage may have missed. * Use: perl-cleaner --all >>> Auto-cleaning packages... >>> No outdated packages were found on your system. * GNU info directory index is up-to-date. !!! existing preserved libs: >>> package: dev-lang/perl-5.24.1-r1 * - /usr/lib64/libperl.so.5.22 * - /usr/lib64/libperl.so.5.22.3 * used by /usr/lib64/texinfo/XSParagraph.so (sys-apps/texinfo-6.1) Use emerge @preserved-rebuild to rebuild packages using these libraries ``` なんか言ってるワケですよ……案の定。 ## 対応するしかないですね まずは上から、オススメされてるやつを確認してみます。 ``` # emerge -pv --depclean * Always study the list of packages to be cleaned for any obvious * mistakes. Packages that are part of the world set will always * be kept. They can be manually added to this set with * `emerge --noreplace `. Packages that are listed in * package.provided (see portage(5)) will be removed by * depclean, even if they are part of the world set. * * As a safety measure, depclean will not remove any packages * unless *all* required dependencies have been resolved. As a * consequence of this, it often becomes necessary to run * `emerge --update --newuse --deep @world` prior to depclean. Calculating dependencies... done! * Dependencies could not be completely resolved due to * the following required packages not being installed: * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-ParseXS-3.280.0-r1 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/XML-Parser-2.440.0 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Locale-gettext-1.50.0-r1 * * =dev-lang/perl-5.22.3* pulled in by: * virtual/perl-ExtUtils-MakeMaker-7.40.200_rc * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Text-ParseWords-3.300.0-r2 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Perl-OSType-1.8.0-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-ExtUtils-CBuilder-0.280.221-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-CPAN-Meta-YAML-0.12.0-r2 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Module-Metadata-1.0.26-r1 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Text-Unidecode-1.270.0 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * app-text/po4a-0.45-r3 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Getopt-Long-2.450.0-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-Module-Metadata-1.0.26-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-JSON-PP-2.273.0.100_rc-r1 * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Install-2.40.0-r2 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/TermReadKey-2.330.0 * * dev-lang/perl:0/5.22= pulled in by: * dev-perl/Module-Build-0.421.600 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Text-CharWidth-0.40.0-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Manifest-1.700.0-r3 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-CPAN-Meta-2.150.1-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-Getopt-Long-2.450.0-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-MakeMaker-7.40.200_rc * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/SGMLSpm-1.03-r7 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Text-WrapI18N-0.60.0-r1 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/libintl-perl-1.240.0 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-ExtUtils-ParseXS-3.280.0-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-version-0.990.900-r3 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Parse-CPAN-Meta-1.441.400.100_rc * * =dev-lang/perl-5.22.3* pulled in by: * virtual/perl-Parse-CPAN-Meta-1.441.400.100_rc * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-File-Spec-3.560.200_rc * * =dev-lang/perl-5.22.3* pulled in by: * virtual/perl-File-Spec-3.560.200_rc * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-CPAN-Meta-2.150.1-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-CBuilder-0.280.221-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Install-2.40.0-r2 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/TermReadKey-2.330.0 * * dev-lang/perl:0/5.22= pulled in by: * dev-perl/Module-Build-0.421.600 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Text-CharWidth-0.40.0-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Manifest-1.700.0-r3 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-CPAN-Meta-2.150.1-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-Getopt-Long-2.450.0-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-MakeMaker-7.40.200_rc * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/SGMLSpm-1.03-r7 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Text-WrapI18N-0.60.0-r1 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/libintl-perl-1.240.0 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-ExtUtils-ParseXS-3.280.0-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-version-0.990.900-r3 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Parse-CPAN-Meta-1.441.400.100_rc * * =dev-lang/perl-5.22.3* pulled in by: * virtual/perl-Parse-CPAN-Meta-1.441.400.100_rc * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-File-Spec-3.560.200_rc * * =dev-lang/perl-5.22.3* pulled in by: * virtual/perl-File-Spec-3.560.200_rc * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-CPAN-Meta-2.150.1-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-CBuilder-0.280.221-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-version-0.990.900-r3 * * dev-lang/perl:0/5.22= pulled in by: * sys-apps/texinfo-6.1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-Perl-OSType-1.8.0-r1 * * dev-lang/perl:0/5.22=[-build(-)] pulled in by: * dev-perl/Unicode-EastAsianWidth-1.330.0-r1 * * =dev-lang/perl-5.22* pulled in by: * virtual/perl-CPAN-Meta-YAML-0.12.0-r2 * * Have you forgotten to do a complete update prior to depclean? The * most comprehensive command for this purpose is as follows: * * emerge --update --newuse --deep --with-bdeps=y @world * * Note that the --with-bdeps=y option is not required in many * situations. Refer to the emerge manual page (run `man emerge`) * for more information about --with-bdeps. * * Also, note that it may be necessary to manually uninstall * packages that no longer exist in the portage tree, since it may * not be possible to satisfy their dependencies. ``` **おぃぃぃぃぃ……** なんだよこれはぁぁぁ。 ### perl-cleaner してみる ちょっとこんなの `-p` を外して `--depclean` する勇気ないので、次にオススメされている `perl-cleaner` とやらをやってみます。 ``` # perl-cleaner -p --all * Would try to remove the following perl-core packages from world file * emerge --deselect perl-core/File-Temp * Would try to update installed Perl virtuals * emerge -u1 virtual/perl-CPAN-Meta virtual/perl-CPAN-Meta-YAML virtual/per l-Data-Dumper virtual/perl-ExtUtils-CBuilder virtual/perl-ExtUtils-Install virtu al/perl-ExtUtils-MakeMaker virtual/perl-ExtUtils-Manifest virtual/perl-ExtUtils- ParseXS virtual/perl-File-Spec virtual/perl-File-Temp virtual/perl-Getopt-Long v irtual/perl-JSON-PP virtual/perl-Module-Metadata virtual/perl-Parse-CPAN-Meta vi rtual/perl-Perl-OSType virtual/perl-Test-Harness virtual/perl-Text-ParseWords vi rtual/perl-version * Beginning a clean up of .ph files * Excluding files for 5.24.1 and 5.24.1/x86_64-linux from cleaning * Locating ph files for removal * Locating packages for an update * Locating ebuilds linked against libperl * Adding to list: sys-apps/texinfo:0 * Adding to list: dev-perl/SGMLSpm:0 * Adding to list: dev-perl/libintl-perl:0 * Adding to list: dev-perl/Text-WrapI18N:0 * Adding to list: dev-perl/XML-Parser:0 * Adding to list: dev-perl/Text-Unidecode:0 * Adding to list: dev-perl/TermReadKey:0 * Adding to list: dev-perl/Locale-gettext:0 * Adding to list: dev-perl/Module-Build:0 * Adding to list: dev-perl/Unicode-EastAsianWidth:0 * Adding to list: dev-perl/Text-CharWidth:0 * Adding to list: app-text/po4a:0 * emerge -v1 --backtrack=200 --selective=n -p sys-apps/texinfo:0 dev-perl/SGMLSpm:0 dev-perl/libintl-perl:0 dev-perl/Text-WrapI18N:0 dev-perl/XML-Parser:0 dev-perl/Text-Unidecode:0 dev-perl/TermReadKey:0 dev-perl/Locale-gettext:0 dev-perl/Module-Build:0 dev-perl/Unicode-EastAsianWidth:0 dev-perl/Text-CharWidth:0 app-text/po4a:0 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild r U ] virtual/perl-ExtUtils-MakeMaker-7.100.200_rc::gentoo [7.40.200_rc::gentoo] 0 KiB [ebuild r U ] virtual/perl-Parse-CPAN-Meta-1.441.700.100_rc::gentoo [1.441.400.100_rc::gentoo] 0 KiB [ebuild r U ] virtual/perl-File-Spec-3.630.100_rc::gentoo [3.560.200_rc::gentoo] 0 KiB [ebuild r U ] virtual/perl-CPAN-Meta-YAML-0.18.0-r1::gentoo [0.12.0-r2::gentoo] 0 KiB [ebuild R ] dev-perl/SGMLSpm-1.03-r7::gentoo 0 KiB [ebuild R ] dev-perl/libintl-perl-1.240.0::gentoo 0 KiB [ebuild R ] dev-perl/Locale-gettext-1.50.0-r1::gentoo 0 KiB [ebuild R ] dev-perl/Text-CharWidth-0.40.0-r1::gentoo 0 KiB [ebuild r U ] virtual/perl-Perl-OSType-1.9.0-r1::gentoo [1.8.0-r1::gentoo] 0 KiB [ebuild r U ] virtual/perl-Getopt-Long-2.480.0-r1::gentoo [2.450.0-r1::gentoo] 0 KiB [ebuild r U ] virtual/perl-version-0.991.600-r1::gentoo [0.990.900-r3::gentoo] 0 KiB [ebuild r U ] virtual/perl-ExtUtils-CBuilder-0.280.225-r1::gentoo [0.280.221-r1::gentoo] 0 KiB [ebuild r U ] virtual/perl-Module-Metadata-1.0.31-r1::gentoo [1.0.26-r1::gentoo] 0 KiB [ebuild r U ] virtual/perl-ExtUtils-ParseXS-3.310.0-r1::gentoo [3.280.0-r1::gentoo] 0 KiB [ebuild R ] dev-perl/XML-Parser-2.440.0::gentoo 0 KiB [ebuild R ] dev-perl/Text-WrapI18N-0.60.0-r1::gentoo 0 KiB [ebuild R ] dev-perl/Text-Unidecode-1.270.0::gentoo 0 KiB [ebuild R ] dev-perl/TermReadKey-2.330.0::gentoo 0 KiB [ebuild R ] dev-perl/Unicode-EastAsianWidth-1.330.0-r1::gentoo 0 KiB [ebuild R ] dev-perl/Module-Build-0.421.600::gentoo USE="{-test}" 0 KiB [ebuild R ] sys-apps/texinfo-6.1::gentoo USE="nls -static" 0 KiB [ebuild U ] app-text/po4a-0.47::gentoo [0.45-r3::gentoo] USE="{-test}" LINGUAS="ja -af -ca -cs -da -de -eo -es -et -eu -fr -hr -id -it -kn -ko -nb -nl -pl -pt -pt_BR -ru -sl -sv -uk -vi -zh_CN -zh_HK" 0 KiB Total: 22 packages (11 upgrades, 11 reinstalls), Size of downloads: 0 KiB * * It seems like perl-cleaner had to rebuild some packages. * * The following files remain. These were either installed by hand * or edited. ~(以下略)~ ``` ふむ。なんかがんばってくれそうな感じですね。期待してます。`-p` 外して実行。 ``` * Regenerating GNU info directory index... * Processed 105 info files. * * It seems like perl-cleaner had to rebuild some packages. * ``` だそうです。どれどれ…… ``` # emerge -pv --depclean * Always study the list of packages to be cleaned for any obvious * mistakes. Packages that are part of the world set will always * be kept. They can be manually added to this set with * `emerge --noreplace `. Packages that are listed in * package.provided (see portage(5)) will be removed by * depclean, even if they are part of the world set. * * As a safety measure, depclean will not remove any packages * unless *all* required dependencies have been resolved. As a * consequence of this, it often becomes necessary to run * `emerge --update --newuse --deep @world` prior to depclean. Calculating dependencies... done! * Dependencies could not be completely resolved due to * the following required packages not being installed: * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Install-2.40.0-r2 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-JSON-PP-2.273.0.100_rc-r1 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-Text-ParseWords-3.300.0-r2 * * dev-lang/perl:0/5.22= pulled in by: * virtual/perl-ExtUtils-Manifest-1.700.0-r3 * * Have you forgotten to do a complete update prior to depclean? The * most comprehensive command for this purpose is as follows: * * emerge --update --newuse --deep --with-bdeps=y @world * * Note that the --with-bdeps=y option is not required in many * situations. Refer to the emerge manual page (run `man emerge`) * for more information about --with-bdeps. * * Also, note that it may be necessary to manually uninstall * packages that no longer exist in the portage tree, since it may * not be possible to satisfy their dependencies. ``` **あぁぁぁなんか惜しい**。perl-cleaner……ちょっと残念な子でした。まったく効果がないワケじゃないけれど、完璧な効果じゃないみたいな…… ### --with-bdeps=y でうどんワールドしてみる こんどは `emerge --depclean` のオススメですね。`emerge --update --newuse --deep --with-bdeps=y @world` って、要はショートオプションのうどんに `--with-bdeps=y` 付けるワケですね。 ``` # emerge -uDNpv --with-bdeps=y @world These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild rR ] virtual/perl-ExtUtils-Install-2.40.0-r2::gentoo 0 KiB [ebuild rR ] virtual/perl-Text-ParseWords-3.300.0-r2::gentoo 0 KiB [ebuild rR ] virtual/perl-ExtUtils-Manifest-1.700.0-r3::gentoo 0 KiB [ebuild rR ] virtual/perl-JSON-PP-2.273.0.100_rc-r1::gentoo 0 KiB Total: 4 packages (4 reinstalls), Size of downloads: 0 KiB ``` お。なんかぴったりハマった感じの4パッケージ。これは期待でk(ry ``` # emerge -uDN --with-bdeps=y @world ~(略)~ * After world updates, it is important to remove obsolete packages with * emerge --depclean. Refer to `man emerge` for more information. ``` いったか? ``` >>> These are the packages that would be unmerged: sys-kernel/gentoo-sources selected: 4.9.6-r1 protected: none omitted: 4.9.16 sys-kernel/gentoo-sources selected: 4.4.39 protected: none omitted: 4.9.16 !!! 'app-editors/nano' (virtual/editor) is part of your system profile. !!! Unmerging it may be damaging to your system. app-editors/nano selected: 2.6.3 protected: none omitted: none sys-devel/automake selected: 1.14.1 protected: none omitted: 1.15 sys-devel/binutils selected: 2.25.1-r1 protected: none omitted: 2.26.1 All selected packages: =sys-kernel/gentoo-sources-4.4.39 =app-editors/nano-2.6.3 =sys-devel/binutils-2.25.1-r1 =sys-devel/automake-1.14.1 =sys-kernel/gentoo-sources-4.9.6-r1 >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. Packages installed: 254 Packages in world: 21 Packages in system: 44 Required packages: 249 Number to remove: 5 ``` いつもの表示に戻った……対応完了です。 ## 余談 ちなみに別の仮想サーバーで試してみたところ、`emerge -uDN world` の後に `emerge -uDN --with-bdeps=y @world` を叩けばそれだけで回復することがわかりました……**perl-cleaner ホントにザンネンな子だなぁ……**