CentOS標準のvsftpdがセキュリティ・安定性などを重要視している(CentOSの方向性に沿っているとも言えますが)のに対してProFTPDは、
ProFTPD grew out of the desire to have a secure and configurable FTP server, and out of a significant admiration of the Apache web server.http://www.proftpd.org/goals.html
と書かれているように、モジュールと設定によって機能が拡張できるよう作られています。
モジュールで他サービスと連携して動かすためにあえてvsftpdを使わずにProFTPDを使うわけです。
さて、以前こんなことなどを書いている通り、rpmとyumを愛用しています。インストールやアップデートの際の依存性トラップに引っかかるのを避けるためです。ProFTPDのように公式に存在しなければ、epel・rpmforge・remiレポジトリからのyum installを日常的に利用しています。
ということでProFTPDをいつも通りインストールします。
yum install proftpdしかし設定してサービスを起動させようしましたが立ち上がりません。ログを見ると、どうやらモジュールの読み込みエラーが出ています。
前回入れて動作したバージョンは1.3.3g、今回は1.3.4a(1.3.4aのaはalphaということではないらしい)ということで、はて1.3.4では何か大きな変更でもあったのか?とRelease Notesを見てみますが、特にそのような記載は見当たりません。
そこで、いくつかの旧バージョンを比較してみたところ、サイズがやけにバラバラであることに気付きました。
proftpd-1.3.3c-1.el6.rf.i686.rpm ... 1.9MB proftpd-1.3.3g-1.el6.i686.rpm ... 3.4MB proftpd-1.3.4a-1.el6.rf.i686.rpm ... 2.1MB1.3.3gだけ大きい。ちなみにソースファイルでは
proftpd-1.3.4a.tar.gz ... 7.3MBです。
rpm -qlpで各rpmの中身を比較してみると、どうやら含まれているモジュールの数がだいぶ異なるようです。
バージョンでモジュールの数が大幅に増えたり減ったりするというのはちょっと考えづらいので、その他の違いを見てみます。
proftpd-1.3.3c-1.el6.rf.i686.rpm ... rpmforge proftpd-1.3.3g-1.el6.i686.rpm ... epel proftpd-1.3.4a-1.el6.rf.i686.rpm ... rpmforge(remiにはproftpdが無い模様)
つまり、rpmforgeのrpmとepelのrpmでは、インストールしても使用できるモジュールが異なる、ということです。configureオプションの--with-modulesに指定されているモジュールの数が違うということになるかと思います。
rpmforge・epel・remiレポジトリを使用可能にした状態でyum install proftpdとしてしまうと、これら3個所の中で単純にバージョンナンバーが最新のパッケージが入ってしまいます。
epelはそもそも、fedora用に作ったパッケージをRHEL系のOSで使えるようにする、というプロジェクトです。 ということは…と思ってfedoraのproftpd-1.3.4-0.15.rc3.fc16.i686.rpmを見てみたところ、やはりproftpd-1.3.3g-1.el6.i686.rpmと同じ内容(いわゆる全部入り)になっています。
本家proftpd.orgがrpmを出していない以上、それぞれのrpmレポジトリが独自にrpmを作成しているわけで、それぞれのレポジトリの考え方によって内容が異なる、特に今回のような場合、具体的にパッケージに含まれる範囲が異なる、というようなことを改めて認識した次第です。
今回の教訓としては…
CentOS公式ではないrpmでは、インストールの前に、configureオプションやインストールされる内容を確認した方が良いということになるかと思います。
※
細かい話をすると、rpmforge版にはDSOモジュールが
mod_quotatab mod_quotatab_file mod_sqlしか入っていません。
epel版は
mod_ban mod_ctrls_admin mod_exec mod_facl mod_geoip mod_ifsession mod_load mod_quotatab mod_quotatab_file mod_quotatab_radius mod_quotatab_sql mod_radius mod_ratio mod_rewrite mod_sftp mod_sftp_pam mod_sftp_sql mod_shaper mod_site_misc mod_sql mod_sql_passwd mod_tls_shmcache mod_wrap mod_wrap2 mod_wrap2_file mod_wrap2_sqlとなっています。