[俺日記]

qmail on Mac OS X(not Mac OS X Server) 6回目/daemontoolsを設定する。 / 2003-06-13 (金)

前回の引きで『次はtinydnsの設定です。』なんて書いていたが、考えてみるとまだdaemontoolsが動いていないじゃないか。ということで今回はdaemontoolsを設定〜。

daemontoolsは、ものの本やwebを見ると、rc.なんとかのスクリプトを修正してー、とかなんとか書いてあるが(と言うか、/etc/inittabか/etc/rc.localがあれば、package/installの最後に実行されるpackage/runで動くように設定されているはず)、Mac OS X的にはStartupItemsに登録するのが正しい姿だろう。とか正論吐いてるふりしてrcとかinittabを知らない事を正当化する事にする。

実は、ぐるりが昔djbdnsをインストールする時にDjbdns Mac OS X How-toというページを参考にしてやったんだが、その後でインストールしたqmailでエラーが発生してしまったので結局自分で書き直したスクリプトがあるので、それを使うことにする。なお、改変・再配布も自由お好きにどうぞ。改良したらぐるりにも教えてください。なお、この日記に従ってインストールした場合、素直にsvscanbootを使うとエラーになる(表示されないけど)ので、そのためのパッチも用意したので、あわせて当てる事にする。

% cd ${HOME}/Desktop
% curl -L -O http://gururi.com/qmail/daemontools_sss.tgz
% curl -L -O http://gururi.com/qmail/svscanboot.patch
% sudo ${SHELL}
password:
# mkdir -p /Library/StartupItems
# cd /Library/StartupItems
# tar zxpvf ${HOME}/Desktop/daemontools_sss.tgz
# cd /usr/local/bin
# cat ${HOME}/Desktop/svscanboot.patch|patch
patching file svscanboot
# /Library/StartupItems/Daemontools/Daemontools start(あるいはMacを再起動する。)

1行目でDesktopに移動している。${HOME}と書いてるのは、チルダを書くとSafariで文字化けするからだ(2バイトのチルダになってしまう)。
2〜3行目はスクリプトとパッチをダウンロードしている。いずれもDesktopにダウンロードする。
4〜5行目はシェルをroot権限で動かしている。案外知らない人が多いんだよなぁ。こうすると、「rootになる」んではなく、あくまで「シェルをroot権限で動かす」ので、$HOMEやその他の環境変数ももとのユーザのままです。なので、cdだけ入力しても~rootではなく、「あなたの」ホームディレクトリに移動します。お間違い無きよう。
6〜7行目、標準状態では/Library/StartupItemsは存在しないので作成して移動している。
8行目、/Library/StartupItemsでSystemStarterScriptを展開する。
9〜11行目で/usr/local/binに移動して、svscanbootを修正している。
最後にdaemontoolsを起動する。スクリプトとディレクトリがDaemontoolsになっているのは、単に他のスクリプトにあわせただけで深い意味は無い。突っ込み入れないように>信者の人

これでdjbのプログラムをインストールする下準備は整った。次は今度こそdjbdnsの設定。でもたいした事はしない。ぐるりんちではDynamic DNSを使っている都合上、ローカルネットワーク以外からの問い合わせは想定していない内部用のDNSしか立てないのでそのつもりでよろしく。

tar zvpf daemontools_sss.tgzの結果。
drwxr-xr-x 2 root wheel 0 Jun 12 23:58 Daemontools
-rwxr-xr-x 1 root wheel 562 Jun 13 00:02 Daemontools/Daemontools
drwxr-xr-x 2 root wheel 0 Jun 12 23:58 Daemontools/Resources
drwxr-xr-x 2 root wheel 0 Jun 13 00:03 Daemontools/Resources/English.lproj
-rw-r--r-- 1 root wheel 309 Jun 13 00:05 Daemontools/Resources/English.lproj/Localizable.strings
drwxr-xr-x 2 root wheel 0 Jun 13 00:02 Daemontools/Resources/Japanese.lproj
-rw-r--r-- 1 root wheel 315 Jun 13 00:02 Daemontools/Resources/Japanese.lproj/Localizable.strings
-rw-r--r-- 1 root wheel 340 Jun 12 10:42 Daemontools/StartupParameters.plist

[変更] .Macのアドレスを自鯖に。curlに-Lオプション(302に追随する)を追加。


[俺日記]

ありえない日々2 / 2003-06-09 (月)

今日は篠原さんのラジオの日だ!と思っていたら今日はおやすみ......ショボーン....
#そういや先週「次は6/15」って言ってた気がする。

[俺日記]

あやや / 2003-05-31 (土)

OMEあぷでとしたら自分のソフトが動かなくなっちゃったよ。どうすべー。

[俺日記]

震度5弱 / 2003-05-26 (月)

揺れた揺れた。食器棚が倒れなくて良かったー。

[俺日記]

qmail on Mac OS X(not Mac OS X Server) 5回目/djbdnsをインストールしてみる。 / 2003-05-26 (月)

・djbdns
http://cr.yp.to/djbdns/djbdns-1.05.tar.gz

例によって1行モード。そろそろ面倒くさくなって来たぞ(笑)

% curl -O http://cr.yp.to/djbdns/djbdns-1.05.tar.gz && tar zxvf djbdns-1.05.tar.gz && cd djbdns-1.05 && sudo make setup check

順番にやると以下のようになります。

% curl -O http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
% tar zxvf djbdns-1.05.tar.gz
% cd djbdns-1.05
% sudo make setup check

/usr/local/bin以下にインストールされます。これの他に、/etc/dnsroots.globalもインストールされているはずです。

おまけ:
ls -lrtvF /usr/local/bin /etc/dnsroots.globalした結果。

/usr/local/bin:
-rwxr-xr-x 1 root wheel 22436 May 26 16:47 dnscache-conf*
-rwxr-xr-x 1 root wheel 18124 May 26 16:47 walldns-conf*
-rwxr-xr-x 1 root wheel 22220 May 26 16:47 tinydns-conf*
-rwxr-xr-x 1 root wheel 22224 May 26 16:47 rbldns-conf*
-rwxr-xr-x 1 root wheel 18124 May 26 16:47 pickdns-conf*
-rwxr-xr-x 1 root wheel 22224 May 26 16:47 axfrdns-conf*
-rwxr-xr-x 1 root wheel 59860 May 26 16:47 dnscache*
-rwxr-xr-x 1 root wheel 34956 May 26 16:47 tinydns*
-rwxr-xr-x 1 root wheel 26448 May 26 16:47 walldns*
-rwxr-xr-x 1 root wheel 30728 May 26 16:47 rbldns*
-rwxr-xr-x 1 root wheel 30832 May 26 16:47 pickdns*
-rwxr-xr-x 1 root wheel 34592 May 26 16:47 tinydns-get*
-rwxr-xr-x 1 root wheel 38976 May 26 16:47 axfrdns*
-rwxr-xr-x 1 root wheel 26348 May 26 16:47 tinydns-edit*
-rwxr-xr-x 1 root wheel 30420 May 26 16:47 tinydns-data*
-rwxr-xr-x 1 root wheel 22192 May 26 16:47 rbldns-data*
-rwxr-xr-x 1 root wheel 26288 May 26 16:47 pickdns-data*
-rwxr-xr-x 1 root wheel 30668 May 26 16:47 dnsip*
-rwxr-xr-x 1 root wheel 30440 May 26 16:47 axfr-get*
-rwxr-xr-x 1 root wheel 30668 May 26 16:47 dnsname*
-rwxr-xr-x 1 root wheel 34800 May 26 16:47 dnsipq*
-rwxr-xr-x 1 root wheel 30664 May 26 16:47 dnstxt*
-rwxr-xr-x 1 root wheel 30668 May 26 16:47 dnsmx*
-rwxr-xr-x 1 root wheel 13772 May 26 16:47 random-ip*
-rwxr-xr-x 1 root wheel 34844 May 26 16:47 dnsfilter*
-rwxr-xr-x 1 root wheel 34764 May 26 16:47 dnsqr*
-rwxr-xr-x 1 root wheel 38900 May 26 16:47 dnsq*
-rwxr-xr-x 1 root wheel 1007 May 26 16:47 dnstracesort*
-rwxr-xr-x 1 root wheel 47092 May 26 16:47 dnstrace*

/etc:
-rw-r--r-- 1 root wheel 164 May 26 16:47 /etc/dnsroots.global

次はtinydnsの設定です。

[俺日記]

qmail on Mac OS X(not Mac OS X Server) 4回目/daemontoolsをインストールしてみる。 / 2003-05-26 (月)

・daemontools
次はdaemontoolsを入れまーす。こいつは/package hierarchy(slash package hierarchy)というファイルシステムレイアウトを採用していますが、無視します:-)。/package hierarchy使ってるのこいつだけなんで......。ちなみに、/package hierarchyってのは、コマンドは/packageにインストールし、コマンドのシンボリックリンクを/commandと/usr/local/binにも作るって感じになってます。まぁそいつを受け入れてもいいんだけど、敢えて無視。

さて、早速daemontoolsをダウンロード。

http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

例によって1行モードで。sudoは最後だけね。任意のディレクトリでおけー。sudoが最後だけなのは、/や/usr/local/binに書き込み権限を持たないユーザでやると、/commandとか/usr/local/binの中に作られるはずのシンボリックリンクとかが作られないから。それだけ。

% curl -O http://cr.yp.to/daemontools/daemontools-0.76.tar.gz && tar zxvf daemontools-0.76.tar.gz && cd admin/daemontools-0.76 && package/install ; sudo cp command/* /usr/local/bin

本当なら作業自体を/packageでやるんで、package/installまでで、コンパイルが行われて/commandと/usr/local/binに/package/admin/daemontools-0.76/command/*へのシンボリックリンクが作られるはずです。しかし、/に書き込み権限が無いユーザで作業を行うと、コンパイルまでは出来ますが、/commandおよびシンボリックリンクの作成が出来ないため、command以下に出来たコマンドをsudoで/usr/local/binにインストールしている訳です。

順番にやるとこんな感じか。

% curl -O http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
% tar zxvf daemontools-0.76.tar.gz
% cd admin/daemontools-0.76
% package/install
% sudo cp command/* /usr/local/bin

おまけ:
ls -lrtvF /usr/local/binした結果。

-rwxr-xr-x 1 root wheel 22236 May 26 15:17 envdir*
-rwxr-xr-x 1 root wheel 13720 May 26 15:17 tai64n*
-rwxr-xr-x 1 root wheel 18056 May 26 15:17 svstat*
-r-xr-xr-x 1 root wheel 740 May 26 15:17 svscanboot*
-rwxr-xr-x 1 root wheel 22340 May 26 15:17 svscan*
-rwxr-xr-x 1 root wheel 17880 May 26 15:17 svok*
-rwxr-xr-x 1 root wheel 18048 May 26 15:17 svc*
-rwxr-xr-x 1 root wheel 22596 May 26 15:17 supervise*
-rwxr-xr-x 1 root wheel 22068 May 26 15:17 softlimit*
-rwxr-xr-x 1 root wheel 18028 May 26 15:17 setuidgid*
-rwxr-xr-x 1 root wheel 22064 May 26 15:17 setlock*
-rwxr-xr-x 1 root wheel 9552 May 26 15:17 readproctitle*
-rwxr-xr-x 1 root wheel 17920 May 26 15:17 pgrphack*
-rwxr-xr-x 1 root wheel 31048 May 26 15:17 multilog*
-rwxr-xr-x 1 root wheel 13740 May 26 15:17 tai64nlocal*
-rwxr-xr-x 1 root wheel 18076 May 26 15:17 fghack*
-rwxr-xr-x 1 root wheel 22028 May 26 15:17 envuidgid*

出来たかな?次はtinydnsをインストールします。

[俺日記]

qmail on Mac OS X(not Mac OS X Server) 3回目/tcpserverをインストールしてみる。 / 2003-05-25 (日)

んじゃ行きますか。Terminalでの作業がメインになる(って言うかほぼ100%Terminalでの作業な)のでMacOSな人たちは覚悟完了しておくように。
#そんな難しくないけどな。つか決まったコマンド入力するだけなんだが。
なお、管理者権限とDeveloper Toolsが必要になるので、適宜ダウンロード・インストールの事。

・tcpserver
正しく(?)はucspi-tcpと言うらしい。ucspi-tcpなんて名前は覚えられないので(笑)、皆tcpserverと呼んでいるようですが。ともあれ、tcpserverは以下のURLにあります。

http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz

#しかし、
#Last-Modified: Sat, 18 Mar 2000 15:21:39 GMT
#ってすごいなぁ......3年以上バージョンアップが不要だってことか。

で、1行で済ませようモードの場合。
curl http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz| tar zxvf - && cd ucspi-tcp-0.88 && make && sudo make setup check

これだと不安をおぼえる人向けに以下説明。
まずTerminalでダウンロード&展開。

% curl http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz| tar zxvf -

手抜きだな(笑)。アーカイブも残しておきたければ、

% curl -O http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
% tar zxvf ucspi-tcp-0.88.tar.gz

ですな。curlはデフォルトで/usr/bin/curlにあるはずですので、PATHを通しておきましょう。たぶんデフォルトで通っているはずです。curl: Command not found.などと表示される場合は/usr/bin/curlと指定してみましょう。

アーカイブが展開出来たらmakeしてインストールするだけです。簡単ですな。ただ、ふつーのUN*Xのプログラムと違って、./configure && make && make installじゃありません。この辺嫌われる理由なのか(笑)>DJB

% cd ucspi-tcp-0.88
% make
% sudo make setup check

エラーが出なければ、これで/usr/local/binにtcpserverと関連ファイルがインストールされたはずです。なお、インストール先を変更したい場合は、makeする前にconf-homeを編集しましょう。デフォルトでは/usr/localと書いてあります。ここに書いてあるディレクトリの下にbinが作られ、そこにインストールされる訳です。

tcpserverのインストールはこれでおしまい。

おまけ:
ls -lrtvF /usr/local/binした結果。

-rwxr-xr-x 1 root wheel 51836 May 25 16:06 tcpserver*
-rwxr-xr-x 1 root wheel 22144 May 25 16:06 tcprulescheck*
-rwxr-xr-x 1 root wheel 22160 May 25 16:06 tcprules*
-rwxr-xr-x 1 root wheel 17880 May 25 16:06 argv0*
-rwxr-xr-x 1 root wheel 43184 May 25 16:06 tcpclient*
-rwxr-xr-x 1 root wheel 22348 May 25 16:06 recordio*
-rwxr-xr-x 1 root wheel 157 May 25 16:06 who@*
-rwxr-xr-x 1 root wheel 287 May 25 16:06 http@*
-rwxr-xr-x 1 root wheel 203 May 25 16:06 finger@*
-rwxr-xr-x 1 root wheel 157 May 25 16:06 date@*
-rwxr-xr-x 1 root wheel 143 May 25 16:06 tcpcat*
-rwxr-xr-x 1 root wheel 18000 May 25 16:06 mconnect-io*
-rwxr-xr-x 1 root wheel 149 May 25 16:06 mconnect*
-rwxr-xr-x 1 root wheel 22308 May 25 16:06 fixcrio*
-rwxr-xr-x 1 root wheel 13684 May 25 16:06 delcr*
-rwxr-xr-x 1 root wheel 13684 May 25 16:06 addcr*
-rwxr-xr-x 1 root wheel 39000 May 25 16:06 rblsmtpd*

出来たかな?次はdaemontoolsです。

[俺日記]

がーん / 2003-05-24 (土)

~/Desktopと~/Documents/[0-9A-C]*消しちゃったよ..........(泣)
つまり、AppleScript(昔の)も消えた、と。これはバックアップあるけどな。
しかしそれより書きかけのqmailのテキストも~/Desktopとともに
事象地平の彼方へ.........(泣)

[俺日記]

qmail on Mac OS X(not Mac OS X Server) 2回目 / 2003-05-24 (土)

で、qmailを運用するのにおいらが使ってるその他のDJBなツールたちの話。

まぁdjbdnsは無くてもいいわけなんだけど、おいらはメールサーバにDNScacheサーバと家内ネームサーバもやらせてるので入れてます。家ん中はRendezvous対応のマシンだけじゃないからね。

qmailはDJBのサイトじゃなくってAppleのサイトで落とせるパッケージを使います。こいつはMac OS Xでコンパイル出来るようにパッチが当たっていて、makeし直すのもらくちんなのでこれ使います。

で、UN*Xな人は何が何をするものかてーのはお分かりと思いますが、Macな人にはどれが何をするのやらさっぱわからんと思うので、一応解説(モドキ)をしておきますね。

tcpserverってのは、一定のルールに基づいて、あるプログラムに対する外部からのアクセス許可/不許可、挙動の制御を行うプログラムです。面白いのは任意のプログラムを任意のポートで待ち受けさせる事が出来る、という点でしょうか。

tcpserver 0 8000 /usr/bin/ruby

とかしちゃうと8000番でrubyが待ち受け、とかも出来ます(笑)。TCPWrapperでも似た様な事が出来ますね。

daemontoolsはデーモンの監視・管理を行うプログラム。/service(変更可能)以下にあるディレクトリを監視して、そこにあるデーモンが落ちてたりしたら再起動してくれます。特定のデーモンを止めたり状態を表示したりと言う事も出来ます。また、取りこぼしの無いログを取る事が出来る、というのもウリのようです。

djbdnsはネームサーバ(だけじゃないけど)ね。ネームサーバには他にBINDつーのがありますが(つかMac OS Xにも入ってるみたいだけど)、djbdnsはネームサーバとキャッシュサーバが分離されてます。ネームサーバってのは、あるネットワークのIPアドレスとドメイン名の関係を管理しているサーバです。自分の管理しているホスト以外の情報は知りませんし答えません(訊いても答えられません)。一方キャッシュサーバは、クライアントからの要求に応じてネームサーバに問い合わせを行います。そしてその結果を返すと同時に、文字どおりキャッシュしておき、あとで同じ問い合わせが来た時に高速に返事が出来るようにするサーバです。このネームサーバとキャッシュサーバは動作は似ていますが、このように役目は違います。普段私たちがパソコンのネットワーク設定で入力しているDNSサーバってのは後者です。しかし、両方の役目を1台にやらせている事も多いようです。

ってことで、次回はまずこいつらをインストールします。


[俺日記]

qmail on Mac OS X(not Mac OS X Server) / 2003-05-22 (木)

いっその事ここで書いてしまおう。某MLでポロッと書いてしまったため、無言のプレッシャーを受けている(気がする)ぐるりです。
おいらは自宅でiMac DV SEをサーバにしています。まあ正しくは嫁さんが金を出して買った中古品なので嫁さんのなんですが、管理はおいらがやってます。
で、各種サーバも一手にやらせている訳です。今日からゆっくりとMac OS Xにqmailのインストール時に得た情報をぼちぼちと書いて行こうと思っています。遅くても文句言うの禁止。

でも今日は駄目ね。もう眠いから。
[ ツッコミの受付は終了しています ]

「qmail on Mac OS X(not Mac OS X Server)」のリンク用URL