Engineer as a Lifestyle @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

お手入れ Perl 5.8p5-scalar-list-utilsの場合

Perlはアップグレードすると高い確率でエラーでるんですよねー。
p5-*とかの名前の付いたパッケージがエラーになるので、強制再インストールをやってみます。

% sudo port uninstall perl5.8                                                                     --->  The following versions of perl5.8 are currently installed:
--->    perl5.8 @5.8.8_3+darwin_9
--->    perl5.8 @5.8.9_1 (active)
Error: port uninstall failed: Registry error: Please specify the full version as recorded in the port registry.

古い方は普通にアンインストールしましょう

% sudo port uninstall perl5.8 @5.8.8_3+darwin_9
--->  Uninstalling perl5.8 @5.8.8_3+darwin_9
% sudo port upgrade installed

よく見ると、エラーが起きるのは、p5-scalar-list-utilsというパッケージだけ。
以下、よく分からず適当にコマンドを実行していった結果、エラーが出なくなったのでコマンドを並べるだけです。流れは

  • sudo port -f uninstall p5-scalar-list-utils
  • sudo port clean p5-scalar-list-utils
  • sudo port -f install p5-scalar-list-utils

(訂正9:42 installにも-f付きで実行しないとインストールできませんでした。)
の三つを使って解決したつもりです。結果sudo port upgrade installedしてもエラーが出なくなったのでよしとします。

% sudo port -f uninstall p5-scalar-list-utils
--->  Uninstalling p5-scalar-list-utils @1.19_1
% sudo port -f install p5-scalar-list-utils
--->  Installing p5-scalar-list-utils @1.19_1
--->  Activating p5-scalar-list-utils @1.19_1
Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/List/Util.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/List/Util.pm.mp_1231696292.
Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/Scalar/Util.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/Scalar/Util.pm.mp_1231696292.
Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bs already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bs.mp_1231696292.
Warning: File /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bundle already exists.  Moving to: /opt/local/lib/perl5/5.8.9/darwin-2level/auto/List/Util/Util.bundle.mp_1231696292.
Warning: File /opt/local/share/man/man3/List::Util.3pm.gz already exists.  Moving to: /opt/local/share/man/man3/List::Util.3pm.gz.mp_1231696292.
Warning: File /opt/local/share/man/man3/Scalar::Util.3pm.gz already exists.  Moving to: /opt/local/share/man/man3/Scalar::Util.3pm.gz.mp_1231696292.
--->  Cleaning p5-scalar-list-utils
% sudo port clean p5-scalar-list-utils
--->  Cleaning p5-scalar-list-utils
% sudo port -f install p5-scalar-list-utils
--->  Fetching p5-scalar-list-utils
--->  Verifying checksum(s) for p5-scalar-list-utils
--->  Extracting p5-scalar-list-utils
--->  Configuring p5-scalar-list-utils
--->  Building p5-scalar-list-utils
--->  Staging p5-scalar-list-utils into destroot
You must install or activate this package with '-f' (force) as it needs to overwrite files installed by the perl5.8 port
--->  Installing p5-scalar-list-utils @1.19_1
Error: Target org.macports.install returned: Registry error: p5-scalar-list-utils @1.19_1 already registered as installed.  Please uninstall it first.
Error: Status 1 encountered during processing.
% sudo port list p5-scalar-list-utils
p5-scalar-list-utils           @1.19           perl/p5-scalar-list-utils
% sudo port -f install p5-scalar-list-utils
--->  Installing p5-scalar-list-utils @1.19_1
Error: Target org.macports.install returned: Registry error: p5-scalar-list-utils @1.19_1 already registered as installed.  Please uninstall it first.
Error: Status 1 encountered during processing.
% sudo port -f uninstall p5-scalar-list-utils
--->  Deactivating p5-scalar-list-utils @1.19_1
--->  Uninstalling p5-scalar-list-utils @1.19_1
% sudo port list p5-scalar-list-utils
p5-scalar-list-utils           @1.19           perl/p5-scalar-list-utils
% sudo port uninstall p5-scalar-list-utils
Error: port uninstall failed: Registry error: p5-scalar-list-utils not registered as installed.
% sudo port install p5-scalar-list-utils
--->  Installing p5-scalar-list-utils @1.19_1
--->  Activating p5-scalar-list-utils @1.19_1
--->  Cleaning p5-scalar-list-utils