Arch-Linux

saslpasswd2 對伯克利的支持

  • April 28, 2022

saslpasswd2我在幾台 CentOS 7 機器( saslpasswd2/LibSasl: 2.1.26 )上有 SASL 數據庫,由 postfix 使用並由 生成。它們具有 Berkeley DB(散列,版本 9,本機字節順序)格式。

自從將我的開發系統更改為 Arch(最近來自 Solus)後,我無法再使用我的更新腳本測試更新這樣的數據庫(從 CentOS 同步):

$ echo "pass123" | /usr/sbin/saslpasswd2 -p -c -f sasldb2 -u some.domain john.doe@some.domain
saslpasswd2: generic failure

Arch 上的saslpasswd2版本是 2.1.27 並且在 CentOS 機器和 Arch 機器上都已libdb 5.3安裝。從頭開始創建一個 sasldb2 db 文件在 CentOS 7 上提供了一個 Berkeley 格式的數據庫,在 Arch 上提供了一個 GNU dbm 格式的數據庫。

我可以將開發機器更改為在 rsync-ed 時首先轉換 db,如果有文件證明 saslpasswd2 已放棄對 BerkeleyDB 的支持,我可能還可以更新 CentOS 機器。但我更理解為什麼會這樣,也許修復 Arch 以支持 Berkeley Dbsaslpasswd2

是什麼導致了這種一般故障,我該如何解決這個問題?

(該文件是可寫的,我比較了兩台機器上的雜湊)

我再次遇到這個問題並從頭開始編譯 libsasl ( https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.28/cyrus-sasl-2.1.28.tar.gz )。推薦這種方式(根據 tar 存檔中的 doc/legacy/install.html)berkeleydb 格式受saslpasswd2(和`sasldblistusers2)支持。

引用自:https://unix.stackexchange.com/questions/656833