Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Postfix 2.0.x から 2.2.x へのアップグレード on FreeBSD

2.0.13 で、 ports に登録されているのは 2.2.5 。
Postfix のオフィシャルサイトにある postfix-2.2.5.tar.gz の中に、 RELEASE_NOTES{,-2.1,-2.0} みたいなファイルがある。変更された項目が列挙されているので "Incompat" という奴だけでいいから目を通しておく。このサーバの環境で気になったのは「アップデートする前には postfix を止めておけ」ということくらい。

まずは設定ファイルのバックアップをとっておく。あと postfix を止める。そして portupgrade 。

$ cd /usr/local/etc
$ sudo cp -r postfix postfix.2.0
$ sudo /usr/local/sbin/postfix stop
postfix/postfix-script: stopping the Postfix mail system
$ sudo portupgrade postfix
[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 203 packages found
 :

途中、 "Postfix configuration options" というメニューが出てくるが、特に何にもチェックを入れずに [OK]。
さらに、次のような質問も来るけれどデフォルトのままでいいので [Enter] 。

Would you like to activate Postfix in /etc/mail/mailer.conf [n]?

で、特に何事もなく終了。一応設定ファイルのエラーを調べてから postfix を起動。

$ sudo postfix check
$ sudo /usr/local/sbin/postfix start

/var/log/messages や /var/log/maillog に変なログも出てないし、メールの送受信テストも問題ないみたい。
一応、2.0.13 のときの postconf -n は次の通り *1。 postconf -n がこれと同じなら、特に設定ファイルに変更を加えなくてもそのまま動くことを期待していい、のかな?

allow_mail_to_commands = alias,forward,include
command_directory = /usr/local/sbin
config_directory = /usr/local/etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
daemon_directory = /usr/local/libexec/postfix
debug_peer_level = 2
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_size_limit = 960000000
mailq_path = /usr/local/bin/mailq
manpage_directory = /usr/local/man
message_size_limit = 640000000
mydestination = $myhostname, localhost.$mydomain
mydomain = bar.example.com
myhostname = foo.bar.example.com
mynetworks_style = host
myorigin = $myhostname
newaliases_path = /usr/local/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = no
sample_directory = /usr/local/etc/postfix
sendmail_path = /usr/local/sbin/sendmail
setgid_group = maildrop
smtpd_client_restrictions = check_client_access hash:/usr/local/etc/postfix/den
y_clients
smtpd_sender_restrictions = reject_unknown_sender_domain, permit_mynetworks, ch
eck_sender_access hash:/usr/local/etc/postfix/deny_senders
transport_maps = hash:/usr/local/etc/postfix/transport
unknown_local_recipient_reject_code = 450

ちなみに、以下のコマンドでアップグレード時に必要な設定項目(のプレースホルダ?)を、コメントつきで main.cf と master.cf に追加してくれる、ということらしいんですが、使う機会はありませんでした。

# postfix upgrade-configuration 

*1:途中に改行が入ってるから、それっぽいところは改行が入ってるんだなーと思ってください。あと、 mydomain と myhostname は一応隠してあります。