RPMパッケージも揃いkernelもiptables対応となったので、これまでのPentium3で運営していたVine Linux自宅サーバをLS-GLに切り替えました。
主にApache2+PHP+MysqlでWebサーバを、postfix+sasl+qpopperでメールサーバを、細かいところでntpd、cvs、subversionを動かしています。
インターネットルーターとしてメルコのAirStationを使っているのでサーバは直接WANに晒していません。LAN内ではLS-GLのMACアドレスで固定IPを割り振っています。空けるポートはWAN側からこのIPにアドレス変換して転送しています。
RPM運用にもありますがRPMパッケージにはビルド時の依存関係と実行時の依存関係とが入り乱れてパッケージ間で依存関係が循環してしまったりすることがあるので何度も同じものをビルドし直したり、旧環境でmake installしたモジュールを参照したりと基礎が出来上がるまでに試行錯誤となってしまいました。やはり餅は餅屋でこういうのはプロのディストリビューターに任せるべき問題なんでしょうねw RPM自身はRPMで管理していません。これまでに作成したSRPMは以下の通り(ほとんどVineからの借用):
MySQL-5.0.27-0vl3LS.src.rpm
apache2-2.2.3-0vl3LS.src.rpm
apr-1.2.7-0vl1LS.src.rpm
apr-util-1.2.7-0vl2LS.src.rpm
autoconf-2.59-2vl4LS.src.rpm
automake-1.9.6-0vl1LS.src.rpm
automake14-1.4p6-4vl4LS.src.rpm
bison-2.1-0vl1LS.src.rpm
bzip2-1.0.3-0vl2LS.src.rpm
chkconfig-1.2.17-1vl9LS.src.rpm
coreutils-5.96-0vl1LS.src.rpm
cvs-1.12.13-0vl1LS.src.rpm
cyrus-sasl-2.1.18-0vl6LS.src.rpm
file-4.09-0vl2LS.src.rpm
findutils-4.2.27-0vl1LS.src.rpm
gdbm-1.8.0-20vl3LS.src.rpm
grep-2.5.1-50vl2LS.src.rpm
groff-1.17.2-0vl7LS.src.rpm
iptables-1.3.6-0vl1LS.src.rpm
kr5-devel-buffalo-1.0-LS.src.rpm
less-382-0vl4LS.src.rpm
libjpeg-6b-34vl4LS.src.rpm
libpng-1.2.12-0vl1.2LS.src.rpm
libtermcap-2.0.8-44vl1LS.src.rpm
libtool-1.5.22-0vl1LS.src.rpm
libxml2-2.6.27-0vl1LS.src.rpm
libxslt-1.1.17-0vl2LS.src.rpm
ls-gl-1.0-7.src.rpm
make-3.81-6vl1LS.src.rpm
man-1.5o-0vl3.src.rpm
ncurses-5.4-0vl3LS.src.rpm
neon-0.26.3-0vl1LS.src.rpm
newt-0.50.35-0vl6LS.src.rpm
openldap-devel-buffalo-1.0-LS.src.rpm
openssl-devel-buffalo-1.0-LS.src.rpm
pam-devel-buffalo-1.0-LS.src.rpm
pcre-6.6-0vl1LS.src.rpm
php5-5.2.4-0vl0.40LS.src.rpm
pkgconfig-0.20-0vl3LS.src.rpm
postfix-2.2.10-0vl6LS.src.rpm
python-2.4.4-0vl1LS.src.rpm
qpopper-4.0.9-0vl5LS.src.rpm
sed-4.1.2-0vl2LS.src.rpm
slang-1.4.9-0vl1LS.src.rpm
strace-4.5.13-1vl2LS.src.rpm
subversion-1.3.2-0vl1LS.src.rpm
subversion-1.4.3-0vl1LS.src.rpm
termcap-11.0.1-1vl5LS.src.rpm
texinfo-4.8-0vl1LS.src.rpm
vim-7.1-0vl1.src.rpm
FDclone-2.09d-ls1.src.rpm
automake17-1.7.9-2vl2LS.src.rpm
beecrypt-4.1.2-9vl4LS.src.rpm
cpio-2.6-5vl1LS.src.rpm
expat-1.95.4-1_1.src.rpm
gawk-3.1.3-0vl3LS.src.rpm
gettext-0.16.1-0vl2.src.rpm
gzip-1.3.5-6vl3LS.src.rpm
jman_pages-0.5-20061015vl1.src.rpm
m4-1.4.9-0vl1LS.src.rpm
mktemp-1.5-11vl3.src.rpm
popt-1.12-LS.src.rpm
readline-5.1-0vl1LS.src.rpm
rpm2targz-1.0-LS.src.rpm
sharutils-4.2.1_jp-1.6.1vl6LS.src.rpm
1つのSRPMから複数のRPMファイルが出来上がる場合もあるのでバイナリのパッケージ数は更に多くなっています。但し、これら全てを導入しているわけではありません。また、devel-buffaloとファイル名にあるものは標準で既に入っているライブラリにincludeファイル等を足す為の簡単な自作パッケージになっています。
ビルド環境の為にはツールとしてmake、automake、autoconf、libtool、pkgconfigなどが必要な場面が多々ありました。また標準のbusyboxのコマンドでは引数等の違いでビルドが上手くいかない場合が多く、代替コマンドとしてcoreutils、bison、gzip、bzip2、grep、gawk、mktempなどを使いました。
Apache2+PHP+MySQLで主にWordpressによるブログを立ち上げています、またWebDAVも使えます。標準で動作していたApache 1.3は止めています。この3つが依存するパッケージも結構多く、更にこれら3つのいずれも結構なボリュームなのでビルドはそれぞれ一晩放置の連続になりましたw これまでサーバとして使っていたPentium3 1GHzのマシンと比べるとさすがにもっさり感は否めませんが、まぁ我慢の範囲なのでそのまま運用してみることに。
それとログ解析のawstatsを導入した際にperlのライブラリを追加することになったのですが、Config.pmをLS-GLに合わせて若干修正する必要がありましたが、何とかCPANからアップデートやインストールも行えました。
postfix+sasl+qpopperでSMTPとPOP3を動かしています。postfix+saslでSMTP-AUTHやSMTP over SSL、POP over SSLも出来ます。普段はプロバイダのメールを使っているので、ほとんど実験用なんですけどねw
標準ではntpdateをcronで回して時刻合わせをしていますが、LS-GLには導入されていませんがソースCDの中にはntpdやntpqなどのバイナリも入っています。我が家のWindowsマシンはLinuxのntpdと時刻同期をさせているのでLS-GLのntpdateを止めて代わりにntpdを入れました。Windowsからの時刻同期も可能です(少なくともXPからは)。
仕事のソース等は過去にはcvsで、現在はsubversionで管理しているのでLS-GLにも導入。ssh経由でWinCVSやTortoiseSVNから使えています。
これで一通りのLS-GL鯖化計画は一段落付きました。これまでサーバとして使っていた古いPentium3のマシンは電気代もさることながら発熱と騒音という問題もあり何とかならないかなと思っていたので、LS-GL一台にまとめられれば願ったり叶ったりです。ARMの400MHzでメモリも128M搭載ならそこそこ動くもんですねw