はじめに
この記事は Perl Advent Calendar 2022 の 1日目の記事です。
ある Perl 屋の副業の物語
この物語は実際のお仕事を元につくられたフィクションです。
あなたは時々、副業で Perl 関連の仕事を請けている。 最近は Perl を自ら進んで書く人は減ってしまったが、競争も少ない分買い叩かれることもなく、 悪くない仕事だと思っている。
今回の仕事の内容は、顧客に依頼されたメールサーバーに Perl で書かれたプログラムを導入して設定することだ。導入したいプログラムは authentication_milter、初めて知ったプログラムだ。これは CPAN にも Mail::Milter::Authentication として登録されている。対象となるメールサーバーの OS は CentOS Stream 8 だが、このモジュールの rpm はどこにも無いようだ。さて、どうやってインストールするのが良いだろう…?
制約条件
-
対象プログラム(authentication_milter)はメールサーバーソフト(postfix)から呼び出され、OS の標準サービスの一部として働く予定だ。
- そのため、OS添付の
/usr/bin/perl
(いわゆるシステムPerl)を活用したい
(plenv/ perlbrew/ perl-build などで独自の Perl バイナリーをインストールすることは、運用を他人に引き継いだ後の混乱の元になるという理由で、今回は避けるとする)
幸い、CentOS Stream 8 の現在の Perl はv5.26.3
。新しくはないが、使えないほど古いものでもない。
- そのため、OS添付の
-
このサーバーには既に SpamAssassin (これも Perl で書かれている)が OS のパッケージ管理システム dnf を通じて導入されている。この挙動は壊したくない。
-
テストサーバー上で authentication_milter を導入し、問題が発覚した時は撤退することで顧客の同意を得ている。ただし、撤退時は完全なアンインストールが必須だ。