portupgrade での unknown build error 対策

portversion でバージョンが一致していないにもかかわらず次のエラーが出る場合の対策メモです(環境はFreeBSD4.x)。

 p5-MIME-Base64-3.07 is already installed
 You may wish to “make deinstal 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

こういうエラーが出る都度

pkg_deinstall -f “パッケージ名_バージョン”
portinstall “portのパッケージパス”

とかずっとやっていたのですが、perl 回りで頻発していて、へき易してきたので
説明にある通り環境変数 “FORCE_PKG_REGISTER” をセットして ad-hoc に回避。
 

# vi /usr/local/etc/pkgtools.conf

module PkgConfig の下あたりに

ENV[‘FORCE_PKG_REGISTER’] = ‘yes’

を追加して再度 portupgrade でエラーが出なくなります。
 
原因については未確認ですが、他の環境で発生しないなら cpan スクリプトでインストールしたモジュールあたりが原因かなと推測してますが、どうなんでしょう。