pkg・ports アップデート関連 - perl5 - perl5.32 → 5.34
1. 概要 今回(2021年5月21日)は、「needs updating」が出ているわけではない。 ウェブサーバのログ解析に「awstats」を使用しているのですが、それが急に動かなくなりました。 ログを見ると [Fri May 21 07:47:57.458378 2021] [cgi:error] [pid 13709] [client 126.33.215.207:63666] AH01215: Encode.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xf580080): /ちゃい/awstats.pl [Fri May 21 07:47:57.458468 2021] [cgi:error] [pid 13709] [client 126.33.215.207:63666] End of script output before headers: awstats.pl てなログが出ております。 「loadable library and perl binaries are mismatched」てなキーワードで検索すると、どうも依存するモジュールが古いのどうのこうのと言っております。 「p5-Encode」を「make」しなおしてみるかと /usr/ports/converters/p5-Encode make すると ===> p5-Encode-3.09 depends on package: perl5>=5.32.r0<5.33 - found ===> Configuring for p5-Encode-3.09 Encode.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xf580080) *** Error code 1 Stop. make: stopped in /usr/ports/converters/p5-Encode てなことになります。 ようわからんし、「perl5.34」がリリースされているようなので、アップグレードしてみます。 2. バージョンの変更 $ portupgrade -f perl5.32 -o lang/perl5.34 [Reading data from pkg(8) ... - 322 packages found - done] $ pkg set -o lang/perl5.32:lang/perl5.34 Change origin from lang/perl5.32 to lang/perl5.34 for perl5-5.32.1_1? [y/N]: y Enter を入力しておきます。 3. /etc/make.conf 編集 vi /etc/make.conf DEFAULT_VERSIONS+=perl5=5.32 を以下に書き換えます(もともとない場合は追加)。 DEFAULT_VERSIONS+=perl5=5.34 4. アップグレード portupgrade -Rr perl5 下記のオプションが表示されました。
[Fri May 21 07:47:57.458378 2021] [cgi:error] [pid 13709] [client 126.33.215.207:63666] AH01215: Encode.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xf580080): /ちゃい/awstats.pl [Fri May 21 07:47:57.458468 2021] [cgi:error] [pid 13709] [client 126.33.215.207:63666] End of script output before headers: awstats.pl
/usr/ports/converters/p5-Encode make
===> p5-Encode-3.09 depends on package: perl5>=5.32.r0<5.33 - found ===> Configuring for p5-Encode-3.09 Encode.c: loadable library and perl binaries are mismatched (got handshake key 0xfc00080, needed 0xf580080) *** Error code 1 Stop. make: stopped in /usr/ports/converters/p5-Encode
$ portupgrade -f perl5.32 -o lang/perl5.34 [Reading data from pkg(8) ... - 322 packages found - done] $ pkg set -o lang/perl5.32:lang/perl5.34 Change origin from lang/perl5.32 to lang/perl5.34 for perl5-5.32.1_1? [y/N]:
vi /etc/make.conf
DEFAULT_VERSIONS+=perl5=5.32
DEFAULT_VERSIONS+=perl5=5.34
portupgrade -Rr perl5
「PERL_64BITINT」が気になりますが・・・。 とりあえず、デフォルトで。 「perl5-5.34.0.r2」であるのが気になりましたが、エラーなくインストールできました。 以前と同様、依存するもので、何か発生する場合は、書き直します。 5. モジュール再インストール 「sa-update」あたりで、ぞろぞろ落ちるはずなので、以下を再インストールします。 /usr/ports/net/p5-Socket6 /usr/ports/net-mgmt/p5-NetAddr-IP /usr/ports/www/p5-HTML-Parser いずれも、下記の手順で再インストールします。 cd /パス make deinstall clean make make install 実は、これ、勘が当たっていたようで・・・。 この作業後、「awstats」が動くようになりました。
/usr/ports/net/p5-Socket6 /usr/ports/net-mgmt/p5-NetAddr-IP /usr/ports/www/p5-HTML-Parser
cd /パス make deinstall clean make make install