FreeBSD: help2man “configure: error: perl module Locale::gettext required”

(English Paage here.)
いつものように ports の更新状況を確認したところ、複数の更新の中に help2man のバージョンアップを発見しました。特に目的として入れたわけではなく、他のパッケージとの依存関係で入ったパッケージで今まで特にバージョンを確認することもなく事務的に更新していたものです。

help2man-1.43.3             <  needs updating (port has 1.43.3_1)

いつもの portupgrade コマンドで更新をかけたところ、今回は configureの途中でエラーが発生!

checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking for library containing dlsym... none required
checking for library containing bindtextdomain... none required
configure: error: perl module Locale::gettext required
===> Script "configure" failed unexpectedly.
Please report the problem to sunpoet@FreeBSD.org [maintainer] and attach the
"/usr/ports/misc/help2man/work/help2man-1.43.3/config.log" including the
output of the failure of your make command. Also, it might be a good idea to
provide an overview of all packages installed on your system (e.g. a
/usr/sbin/pkg_info -Ea).
*** Error code 1

Stop in /usr/ports/misc/help2man.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20131125-22851-3dwfbb env UPGRADE_TOOL=portupgrade UPGRADE_PORT=help2man-1.43.3 UPGRADE_PORT_VER=1.43.3 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! misc/help2man (help2man-1.43.3) (configure error)

Locale::gettext が必要だって!
pkg_info コマンドでインストールパッケージリストを取ってみると、ちゃんと入っているじゃない!

p5-Locale-gettext-1.05_3 Message handling functions

ひょっとして、以前 perl のバージョンアップでディレクトリ構成が変更になった件に関係にしているの?
ということで、devel/p5-Locale-gettext を削除と再インストールし。これで Locale::gettext は適切なディレクトリにインストールされ直したはず。

この後で、「portupgrade help2man-1.43.3」 を実行したところ、今度は無事に help2man が更新されました。

Perl のディレクトリ構成変更には、いつまでもたたられるな~。

2013/12/13追記

help2man ビルドが Locale::gettext でエラーを吐くのは、過去に Locale::gettext をインストールした時期が perl を更新した時期よりも前だったためかと考えていたのですが、新しくOSインストールしたマシンでも発生しました。

===>  Configuring for help2man-1.43.3_1
configure: loading site script /usr/ports/Templates/config.site
checking for perl... perl
checking for module Locale::gettext... no
checking for msgfmt... /usr/local/bin/msgfmt
checking for gcc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking for library containing dlsym... none required
checking for library containing bindtextdomain... none required
configure: error: perl module Locale::gettext required
===>  Script "configure" failed unexpectedly.
Please read UPDATING entry 20130612
(http://svnweb.freebsd.org/ports/head/UPDATING?r1=320405&r2=32067) and
PR/184276 (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184276) to fix
your Perl installation if you got the error message "configure: error: perl
module Locale::gettext required".
*** [do-configure] Error code 1

Stop in /usr/ports/misc/help2man.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20131213-73699-qggse7 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=help2man-1.43.3 UPGRADE_PORT_VER=1.43.3 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
        ! misc/help2man (help2man-1.43.3)       (configure error)

エラーメッセージは若干違っています。

ということは、私のFreeBSDサーバーだけの問題だったのではなく、誰でも発生する現象だったわけ?

とりあえず、p5-Locale-gettext を手動で再インストールするという、同じ対策を施してみることにしたところ、問題解決。

# cd /usr/ports/devel/p5-Locale-gettext/
# make deinstall reinstall clean
# portupgrade -a

===>  Building package for help2man-1.43.3_1
Creating package /usr/ports/misc/help2man/work/help2man-1.43.3_1.tbz
Registering depends: p5-Locale-gettext-1.05_3 gettext-0.18.3.1 libiconv-1.14_1 perl5.14-5.14.4_4.
Creating bzip'd tar ball in '/usr/ports/misc/help2man/work/help2man-1.43.3_1.tbz'
===>  Installing for help2man-1.43.3_1
===>  Cleaning for help2man-1.43.3_1
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 104 packages found (-0 +1) . done]

コメントを残す