pkg・ports アップデート関連 - perl5 - perl5.32 → 5.34
- 1. 概要
- 2. バージョンの変更
- 3. /etc/make.conf 編集
- 4. アップグレード
- 5. モジュール再インストール
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
下記のオプションが表示されました。

「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」が動くようになりました。
|
|