Raspberry piにopenmediavaultをインストールしようとするとPostfixのせいで失敗してしまう

Raspberry piにOpenMediaVaultをインストール中にエラーが出て中断…。なんとか解決したので備忘録としてメモ。

ITmediaのこの記事(https://www.itmedia.co.jp/news/articles/2002/24/news008.html)を見ながら、手近にあったRaspberry piにワンライナーでOpenMediaVaultをインストールしていると、途中で以下のようなエラーが…

Running newaliases
newaliases: warning: valid_hostname: numeric hostname: 192.168.XXX.XXX(自宅のルーターのアドレス)
newaliases: fatal: file /etc/postfix/main.cf: parameter mydomain: bad parameter value: 192.168.XXX.XXX(自宅ルーターのアドレス)
dpkg: error processing package postfix (--configure):
 installed postfix package post-installation script subprocess returned error exit status 75
Errors were encountered while processing:
 postfix
E: Sub-process /usr/bin/dpkg returned an error code (1)
failed installing postfix

つまり…、mydomainの値が良くない?のかな?? というより、このパラメータを設定した記憶はない。なんでだろう…。

とりあえず、SSHで接続したラズパイのpostfixのパラメーターを確認する。

postconf

すると、確かに

mydomain = 192.168.XXX.XXX(自宅ルーターのアドレス)
myhostname = raspberrypi.192.168.XXX.XXX(自宅ルーターのアドレス)

となってる。なので、「mydomain」のパラメーターを修正すればいいのかな。

Postfixの設定は「/etc/postfix/main.cf」にあるので、その中を見てみる。

sudo cat /etc/postfix/main.cf

ファイルには、「myhostname = raspberrypi.192.168.XXX.XXX」の設定はあるが、先程表示させたPostfixのパラメーターと異なり、「mydomain」は項目自体がない。なんでかね?

いろいろ調べてみると、

mydomain (デフォルト: “postconf -d" の出力を参照)
このメールシステムのインターネットドメイン名。デフォルトでは $myhostname から最初の要素を引いたものを使います。$mydomain は 他の多くの設定パラメータのデフォルト値として使われます。
引用元:http://www.postfix-jp.info/trans-2.1/jhtml/postconf.5.html

myhostnameにドットがなかったらDNSサーバのアドレスを勝手にくっつける仕様になったようだ。
引用元:https://doroyamada.hatenablog.jp/entry/20160828/1472361281

ということらしい。

つまり、myhostnameに「raspberrypi」と記述されていると、「.(ドット)」がないので、システムが気を利かせて(?)現在設定されているDNSサーバー名(この場合「192.168.XXX.XXX」)を自動的に追加した結果、「myhostname = raspberrypi.192.168.XXX.XXX」となる。そして、mydomainが指定されてない場合、myhostnameの最初の要素を引いたものをmydomainとして使用するので「mydomain = 192.168.XXX.XXX」となる。しかしRFC1123によると、dotted-decimal number("#.#.#.#"という形式)は、"[]“(角括弧)で囲まなければならないので、エラーになった。

というわけで、viを使って、myhostnameを以下のように修正。

sudo vi /etc/postfix/main.cf
myhostname = raspberrypi.local

これで無事インストールできるようになった!!

参考

Tips

Posted by ucci1372