portupgrade: new compile error

FreeBSD ports の wget コマンドにアップデートがあるということで、FreeBSD 7サーバー上でコマンドを更新するため、portupgrade を掛けたら予期せぬところで以下のようにエラーが発生。

./texi2pod.pl -D VERSION="1.13.4" ./wget.texi wget.pod
/usr/local/bin/pod2man --center="GNU Wget" --release="GNU Wget 1.13.4" wget.pod > wget.1
/usr/local/bin/pod2man: not found
gmake[2]: *** [wget.1] Error 127
gmake[2]: Leaving directory `/usr/ports/ftp/wget/work/wget-1.13.4/doc'
gmake[1]: *** [all-recursive] エラー 1
gmake[1]: ディレクトリ `/usr/ports/ftp/wget/work/wget-1.13.4' から出ます
gmake: *** [all] エラー 2
*** Error code 1
Stop in /usr/ports/ftp/wget.
*** Error code 1
Stop in /usr/ports/ftp/wget.
** Command failed [exit code 1]: /usr/local/libexec/pkgtools/script -qa /tmp/portupgrade20130206-8378-a7x9um-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=wget-1.13.4_1 UPGRADE_PORT_VER=1.13.4_1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
 ! ftp/wget (wget-1.13.4_1) (new compiler error)

pod2man コマンドは存在しているのだけど、、、、 pod2man が何かファイルを見つけられないのだったっけ?インストールされていないコマンドを実行しようとした場合は、shellは「not found」じゃなくて、「command not found」と出力するはずなので、何が見つからなかったのかよくわからない。wgetコマンド本体じゃなくて、doc を生成せいする時にエラーを出しているように見えるので、”/usr/ports/ftp/wget/work/wget-1.13.4/doc” にて、make clean;make を発行してみると、

./texi2pod.pl -D VERSION="1.13.4" ./wget.texi wget.pod
/usr/local/bin/pod2man --center="GNU Wget" --release="GNU Wget 1.13.4" wget.pod > wget.1
/usr/local/bin/pod2man: not found
*** Error code 127
Stop in /usr/ports/ftp/wget/work/wget-1.13.4/doc.

ここにあるべきファイルが原因だろうとは推測出来るものの、何が原因となっているのかが見つからない!
そこでエラーメッセージを検索してみたところヒントが見つかりました。

/usr/local/bin/pod2man ファイルを head でみてみると、

# head /usr/local/bin/pod2man 
#!/usr/local/bin/perl
 eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}'
 if $running_under_some_shell;
# pod2man -- Convert POD data to formatted *roff input.
#
# Copyright 1999, 2000, 2001, 2004, 2006, 2008 Russ Allbery <rra@stanford.edu>

ということで、perlスクリプトでした。そして、/usr/local/bin にあるべき perl は、

# cd /usr/local/bin
# ll perl
ls: perl: No such file or directory

存在していたのは、「perl5.12.4」 で、「perl」 へのシンボリックリンクは存在していない!なんというくだらない原因。
過去に存在していた気がするんだけどな〜、メンテナンスで頻繁に可能な範囲でパッケージを最新にするようにしているため perl をアップグレードしたときにリンクが消えたのかもしれない。
素直に、perl5.12.4 を perl にシンボリックリンクを張って、再度 wget コマンドを 「portupgrade wget-1.13.4_1」 で更新。
無事、更新出来ました。

「new compile error」ということで初めて見るエラーメッセージで慌ててしまいましたけど、原因を突き詰めて行けば、単純なシステム管理上のミスで、終わってみれば、「なんて、無駄なトラブルシューティングの時間だったんだろう。」というのが、今回の感想。

コメントを残す