fedora40にしたらRspamdが使えなかったので別サーバにしてみた

Rspamd

fedora 39を40にアップグレードしたらRspamdが動いていなかった…。のでその一時的な対策。

標準パッケージ以外のパッケージを利用している場合、OSのアップグレードを行うときは、dump相当のバックアップかsnapshotを取っておこう。(ま、簡単に戻せない場合もあるけど、とっておいたほうが戻すとき楽(な場合が多いきがする))

原因

アップグレード(fedora39→fedora40)の時に–allowerasingオプションをつけたからなのかどうかわからないが、rspamdのパッケージがアンインストールされていた。

その原因は…

Rspamdをcopr(lorbus/rspamdおよびjohan/rspamdのどちらも)のリポジトリでインストールしているのだが、これ(ら)がlibsodium.so.23を要求する。しかしfedora40にアップグレードするとlibsodium.so.26がインストールされるので、この依存関係でアンインストールされたようだ。

そこで、再インストールをしようとすると、以下のようになってインストールさせてくれない。

# dnf install rspamd
Last metadata expiration check: 1:00:30 ago on Sat 27 Apr 2024 09:46:49 PM JST.
Error:
 Problem: conflicting requests
  - nothing provides libsodium.so.23()(64bit) needed by rspamd-3.6-1.fc40.x86_64 from copr:copr.fedorainfracloud.org:lorbus:rspamd
(try to add '--skip-broken' to skip uninstallable packages)
#

つづいて、libsodium.so(libsodium-develに含まれている)をダウングレードしようとした。そのためにlibsodium-develを削除したところ、これに依存しているdovecotが消えてしまった。これは困るので、dovecotおよび関連ソフトを急いで再インストールし設定を元に戻した。libsodium-develはdovecotの必要なパッケージとして自動的にインストールされた。

結局、2024/4/27の時点でfedora40でcoprのrspamdをインストールするのはあきらめた。

一時的な回避策

回避策としては、いくつか方法がある。

放置

/etc/postfix/main.cfのmilter_default_actionをacceptにして放置。

野良build

公式のここにbuild方法がのっている。rspamdの最新が利用できるのでいいかもしれない。でも、やらない(やれない)。

docker/その他のOS

dockerバージョンなら楽なんだろうけど。

別サーバ(fedora 39)

別VMにてfedora39を新規インストールし、Rspamdをインストールする。

定義や証明書等は前のサーバのものをそのまま持ってくる。

待ち受けポート11332をどこからでも受け取れるように/etc/rspamd/local.d/worker-proxy.incに以下の行を追加する。

bind_socket = "*:11332";

ポート11332/tcpをメールサーバからアクセスできるようにfirewalldに設定。

メールサーバのpostfixでsmtpd_miltersに指定しているアドレス(127.0.0.1)をRspamdサーバのアドレスに変更する。

実際にはこちらの方法で回避した。

別サーバ(fedora 40)

別途fedora 40のサーバを用意する。

libsodium-1.0.18-15.fc39.x86_64.rpmをダウンロードし、インストール。

これで、lorbus:rspamdリポジトリでrspamdがインストールできる。

postfixの設定をこちらにむけてテストしてみたがこちらでも動作した。

コメント

タイトルとURLをコピーしました