1. 概要
本サイトでは、お馴染みの状況です。
$ pkg version -vl "<"
perl5-5.28.2 < needs updating (index has 5.30.0)
2. バージョンの変更
$ portupgrade -o lang/perl5.30 -f perl5.28
$ pkg set -o lang/perl5.28:lang/perl5.30
Change origin from lang/perl5.28 to lang/perl5.30 for perl5-5.28.2? [y/N]: ← y Enter
3. /etc/make.conf 編集
vi /etc/make.conf
DEFAULT_VERSIONS+=perl5=5.28
を以下に書き換えます。
もともとない場合は追加します。
DEFAULT_VERSIONS+=perl5=5.30
4. アップグレード
portupgrade -Rr perl5
今回は、これで、素直にアップグレードできました。
依存するもので、何か発生する場合は、書き直します。
5. 追加のモジュール再インストール
ということで、前項で書いた通り、「perl5」自体をアップグレードしても直接の依存関係にないものはアップグレードされません。
このあたり・・・なんとかなるとありがたいのですけれど。
「sa-spamd」を再起動して、以下のモジュールを再インストールすることになりました。
再インストールのため、「ports」のディレクトリパスから記述しておきますが。
/usr/ports/databases/p5-DBD-Pg
/usr/ports/databases/p5-DBI
/usr/ports/editors/vim
/usr/ports/mail/spamassassin
/usr/ports/net-mgmt/p5-NetAddr-IP
/usr/ports/security/p5-Net-SSLeay
/usr/ports/textproc/p5-XML-Parser
/usr/ports/www/p5-HTML-Parser
いずれも、下記の手順で再インストールします。
cd /パス
make deinstall clean
make
make install
6. 更に問題発生
これで、当分様子を見ていたのですが・・・。
どうも、メールの受信で「spamassassin」の動きがおかしい・・・。
メールのログを見てみると
Sep 5 11:31:59 ns spamd[21005]: spamd: error: Bad arg length for Socket::unpack_sockaddr_in, length is 28, should be 16 at /usr/local/lib/perl5/5.30/mach/Socket.pm line 848.
Sep 5 11:31:59 ns spamd[21005]: , continuing at /usr/local/bin/spamd line 1419.
どうも、こけてるんだな(2019年9月5日)。
気づくのに時間がかかっちゃったのだ、わたしの馬鹿なところですが・・・。
「5.28 → 5.30」と同じような手順(「portupgrade」では「make」されないので、ごりごり「make」)で「5.30 → 5.28」にすると。
「spamd」が正常に動作するようになったので、当分、「perl5.28」で運用するしかないなぁ。
「5.30」が更新されて、正常に動作するようになったら、正式にアップグレードするかな。
7. 解決
前項の問題は、2020年7月27日、やっと解決しました。
「Bad arg length for Socket::unpack_sockaddr_in, length is 28」で検索して、答えがありました。
(参考にしたサイトは、リンク切れになりました)
「p5-Socket」と言いつつ、「p5-Socket6」の問題。
すなわち
cd /usr/ports/net/p5-Socket6
make deinstall clean
make
make install
service sa-spamd restart
で、解決しました。