portupgrade が失敗する理由 ― 2006年05月05日 06時53分44秒
# portupgrade ...
...
[Updating the pkgdb in /var/db/pkg ... - 382 packages found (-1 +0) (...) done]
---> Uninstallation of p5-MIME-Base64-3.05 ended at: Thu, 04 May 2006 01:53:18 -0500 (consumed 00:00:05)
---> Installation of converters/p5-MIME-Base64 started at: Thu, 04 May 2006 01:53:18 -0500
---> Installing the new version via the port
===> Installing for p5-MIME-Base64-3.07
===> p5-MIME-Base64-3.07 depends on file: /usr/local/bin/perl5.8.8 - found
===> Generating temporary packing list
===> Checking if converters/p5-MIME-Base64 already installed
===> p5-MIME-Base64-3.07 is already installed
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of converters/p5-MIME-Base64
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.
*** Error code 1
Stop in /usr/ports/converters/p5-MIME-Base64.
*** Error code 1
Stop in /usr/ports/converters/p5-MIME-Base64.
*** Error code 1
Stop in /usr/ports/converters/p5-MIME-Base64.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade6571.28 make reinstall
といって、失敗するのを時々見掛けた。滅多に更新しなかったので、エラーが出ること自体は大して気にかけていなかったのだが、ずっと不思議に思っていた。
最近、この失敗の原因を掴めた。
%ls /var/db/pkg/p5-MIME-Base64-3.0*
/var/db/pkg/p5-MIME-Base64-3.05:
+COMMENT +CONTENTS +DESC +MTREE_DIRS +REQUIRED_BY
/var/db/pkg/p5-MIME-Base64-3.07:
+COMMENT +CONTENTS +DESC +MTREE_DIRS
つまり、同一の物が何らかの不具合で入った状態になっている。
# pkgdb -F
...
Duplicated origin: converters/p5-MIME-Base64 - p5-MIME-Base64-3.05 p5-MIME-Base64-3.07
Unregister any of them? [no]
とやると一応修正できるが、pkgdb が指定した方を /var/db/pkg から消してくれる。
ただ、この方法だと pkg の情報を消すだけなので、ゴミが残る可能性がある。そこで、pkg_delete -f で古い方を消し、新しい方を念のために reinstall することにしている。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/05/04/352468/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。