メールサーバーのセットアップ
インストールされているパッケージの確認
FTPサーバーを探した時と同じように、パッケージの一覧から「mail」を含むパッケージを探します。

# yum list installed | grep mail
- libreport-plugin-mailx.x86_64
- mailcap.noarch
- mailx.x86_64
- procmail.x86_64
はい、4つ見つかりました。 もう手慣れたものですよ。
「libreport-plugin-mailx」はプラグインだから違いますね。
「mailcap.noarch」でもなさそうです。 "noarch"は、「No Architecture」の略かな? 本来なら、x86_64みたいにプログラムのビット数が入るところなので。
「mailx」と「procmail」はどちらもそれっぽいなぁ…。 manコマンドでマニュアルを表示してみたらどうだろうか。

# man mailx
mailx - send and receive Internet mail
「インターネットメールの送信と受信」 ぱっと見、メールサーバーっぽいけど、コマンドライン引数を見る限り、メールの送信を受信を実行するコマンドっぽい。 sendmail見たいなものかな。 そういえば、sendmailはパッケージに出てこなかったなぁ。

# man procmail
procmail - 自立型メールプロセッサ
説明が日本語になっているのはありがたいが、いまいち理解できない…。
どちらかといと、mailprocのほうがメールサーバーっぽいけど。 はい、ちゃんと調べます。
いくつかの記事を見る限り、mailxはメールの送信や受信に使うもののようです。 一方、procmailは、メールを振り分けるためのもので、いわゆるメールフィルタのような使い方もできる、とか。
ん…? ってことは、メールサーバーはインストールされてない? ちょっと、インストール時の設定を確認。
CentOSをインストールしたときに選択したメールサーバーの説明には「システムが SMTP または IMAP 電子メールサーバーとして機能できるようにします。」とあります。 おやおや? POP3が入ってないゾ。
IMAPが使えるから、受信メールを貯めることはできるだろうけど、ちょっと違うんだよなぁ…。 んじゃ、ここはWindows Serverで使ってるXmail Serverを導入しようかな。
XMail Serverの導入
wiz.としては、XMailは使いやすいと思うんですよね。 Windows上で動かせるメールサーバーが少ないっていうのもありますが、10年くらい稼働させていてトラブルが発生した記憶がありません。 まぁ、他のメールサーバーを知らないだけかもしれませんが。
いずれにせよ、マイナーなメールサーバーです。 情報(特に日本語の解説)が絶望的に少ない。 yumパッケージもないようです。 なので、ソースからビルドしなければなりません。 これも勉強なので、挑戦してみます。

まず、ソースの入手。
これは、FireFoxがあるので簡単。 http://xmailserver.org/にアクセスして、XMail Sourceをダウンロードします。

「ダウンロード」にファイルが届いたので、ダブルクリックで開きます。

圧縮ファイルを展開します。

「ダウンロード」ディレクトリは名前に全角文字が含まれてしまうので、念のためホーム(/home/wiz/)に展開します。

展開されました。

端末もこのディレクトリにcdコマンドで移動しておきます。
# cd xmail-1.27
これで準備OK。
ソースのビルド
問題はここから。 プログラムソースをビルドして実行ファイルを作らなければなりません。
ソースファイルをビルドするときには、その手順が記された「Makefile」ファイルがあります。 展開したXMailのソースディレクトリを見ると、プラットフォームごとにMakefileが用意されています。 ここでは「Makefile.lnx」を使えばよいようです。 これを端末から実行するために、「make」コマンドを使用します。
先にmakeコマンドのコマンドラインオプションを調べます。 makefileを使うときは「-f <makefile>」をコマンドラインで指定すればよさそうです。

# make -f Makefile.lnx
さっそくエラー。 「g++ コマンドが見つかりません。」
g++ はコンパイラだそうです。 一番重要なプログラムが入ってないとか…。 まぁ、パッケージがあるでしょう。

# yum info g++
パッケージ名が合っているかわからないので、infoオプションでパッケージがあるかどうか調べます。
見つかりませんでした♪ いい加減、ちゃんと調べてからコマンドを実行しろ、とLinuxユーザーの先輩方からおしかりを受けそうですが…。

パッケージ名は「gcc」だそうです。
# yum info gcc
今度はちゃんと見つかりました。 インストールします。

# yum install gcc
インストール完了しました。 途中の応答部分のスクリーンショットは省略しています。

もう一度makeコマンドを実行します。
# make -f Makefile.lnx
あれ? やっぱりg++コマンドがない、と言われます。

CentOSでは、「gcc」ではなく「gcc-c++」を選択せよ、という指摘を見つけました。 こちらで試してみます。
# yum install gcc-c++

インストール完了。 三度、makeコマンド実行。
# make -f Makefile.lnx
ダメか…。 いや、エラーメッセージが違う。
- /usr/bin/ld: -lssl がみつかりません
- /usr/bin/ld: -lcrypto が見つかりません
SSLとCRYPTOのライブラリ? いずれにしても、暗号化に関するプログラムが足りていないようです。
/use/bin/ld に関するエラーの場合、そのあとの「-l」を除いた名前が「lib***」というライブラリだそうです。 んで、libssl、libcryptoの両方を調べると、いずれもOpenSSLにたどり着きました。
ならば、OpenSSLをインストールすればふたつのライブラリも一緒にインストールされるのではないか、と推測。 opensslはパッケージにあると思うので、探してしてみます。

# yum info openssl
ん~…、インストール済みになってますねぇ…。 yumでライブラリからパッケージ情報を検索する方法がありました。

# yum search libssl
一致するのがありません。と言われた。 やはりインストールされていない、というかライブラリが見つからないようです。 今日の時点で、OpenSSLのバージョンは、1.1.0c。 ちょっと新しくなってます。 パッケージでは、1.0.1eなので、最新バージョンをインストールします。
OpenSSLのインストール

www.openssl.orgからソースファイルを入手。

圧縮ファイルを開いて…

ホームに展開します。
端末のディレクトリも移動しておきます。
# cd ../openssl-1.1.0c

続いてビルドします。 opensslの場合は、初めに「./config」を実行してから「make」コマンドを実行すればよいようです。
# ./config
linux-x86_64として設定されたようです。

Makefileが作られました。 なるほど。 ./configを実行することで、実行環境に合わせたMakefileが作られるんですね。 続くmakeコマンドの引数がないのは、このファイルを使うからでしょう。

# make
どうやらエラーもなく終了したようです。 次に、インストールしますが、その前にMakefileで正しくビルドされたかテストします。

# make test
む。 テスト失敗。 なんだか、根本的に間違っているっぽいぞ…。
古いバージョンのOpenSSLがある場合は削除する必要があるみたい。 競合してるのかな…。 状況によっては残すほうが良い、ともあるけど、今のところOpenSSLは使ってないから一旦削除してみようか。

# yum remove openssl
!!?
な…何がおこった?
えっっ、OpenSSL消しちゃダメだった!???
アカン…。 フリーズしてる。
電源オフします…。

恐る恐る起動…。
あちゃ~…。 GUIログインできなくなってる…。 これは相当まずいことになったんじゃないのか…?
まさか、Linuxサーバーの構築はここで終わってしまうのかっ!??
この章のまとめ
- XMailはソースをビルドして導入しなければならない。
- ソースをビルドするときは「gcc」や「g++」を導入しなければならない。
- 「g++」のパッケージ名は「gcc-c++」。
- makeコマンド:ソースをビルドしたり、インストールする。Makefileを指定する場合は「-f」オプションで指定する。
- OpenSSLを消すと、デスクトップ環境がお亡くなりになる。