2008年5月アーカイブ

兎に角、眠い。
仕方ないので、寝る。
いつの疲れからわからない疲労感でいっぱい。
幸い、夜は眠れる、が、さらに、昼も寝る。
過眠だ、な。
木曜日、通院した、の、だ、が、担当医が休みだった。
幸い、薬だけは出してもらえた。
いい加減、SSRI服用停止による副作用、電気ショック様感覚異常、耳鳴り、頭痛、がひどくなりかけていたので、助かった。
通院後に直ぐ服用したのだが、もちろん、即効性はないので、二三日は我慢しなければならない。
偽薬効果か、服用しただけで、ラクになったように思う、いい加減だ、ね。
金曜も、土曜も、電気ショック様感覚異常は出てきたが、回数か確実に減った。

問題は、週末の飲酒だ。
水を飲みたい、のではなくて、酒を飲みたい、の、で、ある。
ビールでもチューハイでも、いいのだが、炭酸系の飲み物はダメ、なんだな。
兎に角、ビールが飲みたい。
勿論、飲めば、連続飲酒になることわかっている。

26日月曜日はもつ鍋研究会を久々に行った。
ウーロン茶でひたすら食す。
幸い、その後は、腹いっぱいで、酒すら飲む気になれなかった。
と、いうことは、酒を飲まないためには、太ることを覚悟して、どか食いでもすればいいのかもしれない。
メタボはイヤだな。


独自ドメインを取得したり、自宅サーバを設定してブログを作ってみたり。
これらは、結局、職場サーバの設定のための練習になっている。
どこまでが趣味(依存症?)でどこからが仕事なのか区別がつかなくなっている。
職場サーバにしても、まず、研究室サーバを自宅サーバの設定を元にして設定、これが職場サーバの公式サーバの設定の練習になっている。
こういうのって、公私混同、と呼ばれる、の、か...

標記に関しては、postfixの設定だし、それなりにできた(例えば、ここ、と、ここ)。
問題は、利用者自身が転送先を設定したり、パスワードを変更できるようにすること、だ。
いちいち、管理者のあたしが介在していたら、特にパスワード変更の意味が無い。

これまでは、ファイルメーカーPro 6でパスワードも管理していた。
httpsを使って、.forwardファイルを編集するためのPHPプログラムはそれなりにできたと思っている※。
とはいえ、利用者のホームディレクトリのアクセス権を705にしたり、.forwardファイルのアクセス権を664にしたり、UNIXの常識、セキュリティの常識、から、は、かなり外れなければならなかったのだが...

いいのだっ
もう、知らないっ、てば、さ

ログインパスワードの変更は、正直、困った。

利用者にとっては、電子メールのアクセスパスワードの変更だから、自宅サーバ、職場サーバでWebMail(squirrelmail)を有効にしてみた。パスワード変更のためのプラグインが用意されていたからだ。
ところが、そもそも、WebMailシステムにログインできないっ
...これは、認証に平文を許可していないことが原因だったのだけど、IMAPを許可することになるし、さらに、プラグインが表示するメッセージとは裏腹に、パスワードの変更に失敗してしまうので、頓挫。

裏で仮想利用者にメールを送り、パスワード文字列を特定フォルダに保存、cronを使ってroot所有のプログラムを実行する、なんてことを考えていた、ところに、こんなページを見つけた、のだ、な。
このページに書かれていた2つのリンク、ここ、と、ここ、を参照。
なるほど、ねぇ〜
dev_osxpass_2.1.tarと、distrib_osxpass_2.1.tarの両方をダウンロードしてみたが、後者だけで使えるみたいね。
dev_osxpass_2.1.tarには、ソースプログラムが含まれていた。Cで書かれている。
うーん、これまで使っていたパスワード管理用データベースとのリンクは無理、か、なぁ。

こういうのに、やりがいを見つけてしまうと、依存症、かも、なぁ〜

READMEを読むと、最初はPHPで作られていたようだ。
セキュリティを考慮して、Cで書き直されたみたいね。
表示にProduction HKを入れたり、index.phpから呼び出したかったので、ソースファイルを書き直してみた。
実は、始めてXcode.appを使ってみた。
ついでに、登録利用者なのか否かをチェックするルーチンも加えた。
結果的に、ハースワード管理用データベースとのリンクも間接的だができそう。

で、後は、安心して、眠れる、と、いいな〜


2/25、日曜日は、作業停電だった。
1台のサーバの電源を落としわすれた、ので、7時30分過ぎ発のバスで職場に移動、8時過ぎから点検を始めた。
基本的に、Mac OS Xを使っているので、タイマーをセットすれば、電源を落とすことも入れることも可能、なのだが。
1台、セットしわすれていた。来て、よかった。

問題のサーバは窓達で動いている。よくわからん、が、とりあえず、シャットダウン。
確か、管理者がログインしていて、スクリーンがロックされていた。
肝腎のパスワードを入力し間違えて、ロックの解除に失敗。
画面に表示されていたシャットダウンを選択したのだが、ログインしている利用者の情報が保存されない、と言われた。そんなに危険なら、表示するなよな〜
Mac OS Xでファストユーザースイッチを使っている時にシャットダウンしようとすると、裏で動いている利用者をログアウトできるのだが、窓達は違うらしい。利用者責任、ということか。
...ちなみに、この管理サーバ、納入業者の約束と異なる動きをしている。そもそも、昨年度末に直った、ことになっていたはずの動きが、見られない。
アドレナリンをドバッと出して、抗議メールを送らなければならない、な。
あぁ〜あ、面倒だぁ、何がって、アドレナリンをドバッと出すこと。

職場全体の電源が切れたところで、購入して有った内蔵ハードディスクを設置した。
帰りがけに、ハードディスクケースを購入して...なんで私物を使うのか、それは、直ぐに利用したいからだ、違法なんだろうけど、仕方ない、これまで、いくらつぎ込んだのだか...自宅に戻ったら昼を過ぎていた。
懸案だったメール転送先設定ファイル.forwardを利用者がWebから編集できるようにするPHPプログラムを完成させ、録画していたドラマ...CSI**にBORNS***を観て、夕方、改めて職場に移動、世の中は動いている、あたし以外にも働いている人々がいるのだよな〜

で、問題の、ファイルメーカーPro 6 on Leopard、だ。
先日、旧サーバ(10.3 Server)から新サーバ(10.5)に移行した。
そもそも、Mac OS X 10.3 Server、で稼働させていること自体が「保証外」なのだし、既にこのバージョンは古すぎる、の、では、あるが、Leopard(Serverではない、これまでの機能の利用状況を鑑みるに、普通のLeopardで十分動かせると判断した)では、論外、だろう。
ただし、自宅サーバ(このブログサーバ、Leopard Server)ではそれなりに動いている。
移行作業後は、それなりに動いていた。
電源回復後、再起動させてみると、ボリュームが見つからない、と、「誰か」が叫んでいる。ボリュームをマウントするのは、Finderを介した作業のはずだから、叫んでいるのはファイルメーカーPro 6ではないと判断したのが、後で間違いだったことがわかる。
旧サーバでは、/Volumes/DBData HD/に配置していた。Mac OS Xだから、ハードディスク名に空白を入れても困らなかった...窓達では使わない文字を使ってしまえば、アクセス不能になるだろうし、うひひ*。
新サーバでは、空白の代わりにアンダーバー_を使った。
最初はこの所為だと思っていた。
どうやら、違うようだった。というのも、ファイルメーカーPro 6で個別にデータベースファイルを開くと、問題なく動くのである。
試しに、Webブラウザで検索してみると、その途端にボリュームが見つからないという叫びが繰り返される。
ということは、ファイルメーカーPro 6フォルダ内のWeb並びにcdml_format_filesフォルダの存在箇所が見つからない、の、だろう。
旧サーバでは、Max OS Xのエイリアス機能で別ボリュームに置いたWeb並びにcdml_format_filesフォルダとリンクさせていた。
新サーバでもその形式を引き継ぎ、かつ、エイリアスのリンク先を確認したのだが、ちゃんと、新しいボリュームを指している。
うーん。
面倒だ、UNIXの伝統に則り、シンボリックリンクにしてしまえっ
簡単に直った。
ふぅ

標記に関連して。
Mac OS Xでは、管理者が最低2人居る。1人は導入時に作成される利用者であり、もう1人は伝統的なrootだ。
自宅サーバでは、面倒なので、rootでコンソールログインしている。
これが問題になった。
新サーバでは、導入時に作成される管理者で運用しようとしていたのだが、再起動する度にファイルメーカーPro 6が、Web コンパニオン Enabler、がロードできない、書き換えられている、再導入しろ、と、叫びやがる。
その度に、ファイルメーカーPro 6の新規導入、あるいは、モジュールだけ選択導入していたのでは、どうにもならない。
が、自宅サーバでは、そのようなことは1度も起きていないのだな。
で、新サーバでも、rootでコンソールログインすることにした。
再起動しても、Web コンパニオン Enabler、に関して叫びは無くなったのだが、管理上は大問題だ。
suを使うか、sudoを使わないと、ログに残らない。自宅ならばあたししかいないので、全責任を負っても大したことはないのだが、職場サーバは別だ。
コンソールに近づいた「誰か」が、たとえ悪意がなくて操作しても、大変なことになる可能性を否定できない。
誰も出入りしないところに設置しないと。
ふぅぁう

妙に、疲れる。
気がつくと、昼過ぎになっているし、起きていてもだるいし。
気温が夜昼で急変する、ということも関係しているだろうし、今は、天敵カモガヤどもが盛んに花粉を飛ばしている時期だから、ということも有りそうだ。
パキシル40mg、眠剤、降圧剤、そして、ニコチンが加わっているのだから、肝臓・腎臓がフル稼働しているはずだ。
疲れてどうしようもないと、つい、職場に行く前にビールを呑んでしまう。
これが輪をかけて、幻覚につながるのだろうな。
あの幻覚は、アルコール依存症の離脱症状だ。

金曜の夜が鬼門であることには変わりはない。
気がつくと、ウィスキーの小瓶が空いていたりする。
幻覚はその次の夜に見るようだ。

腹が空かないので、食事をする気にもなれない。
動いて、食べて、ウンチする、のが、動物の定義なら、動かない、食べない、ウンチもしない、あたしは、植物か...

ニコチンやアルコールに依存していることは確実だ。
つくづく、中島らもの「今夜、すべてのバーで」を読んでいて良かったと思う。
この本では、ある章がやたらと長い。そこで、依存論が展開されている。
担当医に、アルコール依存のことを相談した時だ。ヒトにとって依存は避けられないのではないか、と聞いてみた。
担当医の言うことには、社会的影響を考えれば、依存が避けられないのなら、煙草にしなさい、ということだった。
良い先生だ、ね。

つらいが、この週も通院できなかった。毎週木曜日が通院の日には変わりない。
朝から起きて仕事をしていた。だが、一段落して横になったら、もうダメだった。
気がついた時には、13時近く...
とりあえず、VNCとiChat AVを使って、午後の授業のために集まっている院生たちに呼びかけてみる。
タクシーを飛ばして、30分遅れで打合せに入った。
パキシルが週末にはなくなる。

で、煙草、だ。
幸い、紙巻き煙草は飽きる。
問題は、葉巻だ。
うまい、と、思えるのだ、なぁ〜

それと。
可能性として、サーバ管理、プログラミング、にも、依存しているのかもしれない。
そう言えば、クリスチーナ・リッチの私は「うつ依存症」の女、という映画が有ったな。
うつへの依存をやめれば、うつは治る、といった意味合いの本も読んだことが有る。
確か、中島らもと著者が対談をしていた。今、手元には無い、さて、どこだ?
読んだ時には、なんだかよくわからなかったのだが、今の私は、うつとの共存の道に進んでいるとすれば、依存と呼んでもいいのかもしれない。
それより、クスリ依存、も、ありそうだ。
医者嫌いのクスリ好き、だし。

遺伝子に組み込まれている、という話は、Re:Genesis リ・ジェネシスに出てきている。
フィクションか否かは、まだ調査していない。

26日は、久々にもつ鍋研究会だ。
元気になるかな...

水銀が蟲になりたり
全身の皮の真下に躍り蠢く

銀色のひょろながきもの
皮膚破り間抜けな顔で眺むるはたそ

ブチプチと皮膚を破りし
間抜け顔恐怖は蟲の数のN乗

背中にも蟲は這いたり
まずは腕
爪折れるまで掻き出しにけり

天井に巨大スライム居座りて水銀垂らす
ヌメる赤爪

また、徹夜、した。
昼寝した所為か、眠れない、気になる。

試しに、CPANを検索してみると、Mail-ClamAV-0.22、が有った。
** UNAUTHORIZED RELEASE **
とは書かれていたが...

ダウンロードして、手動で導入してみる。
自宅のLoepard Serverでは問題なし。
職場サーバが問題。

Tiger, Pantherの場合、うまくできたりできなかったり。
できない場合には、そもそも、makeで失敗する。

ld: warning can't open dynamic library: /usr/local/clamXav/lib/libclamunrar_iface.3.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
ld: warning can't open dynamic library: /usr/local/clamXav/lib/libclamunrar.3.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
ld: warning multiple definitions of symbol _BZ2_rNums
/usr/local/lib/libbz2.dylib(randtable.o) definition of _BZ2_rNums
/usr/local/lib/libclamav.dylib(bzlib.o) definition of _BZ2_rNums
ld: Undefined symbols:
_unrar_close referenced from libclamav expected to be defined in /usr/local/clamXav/lib/libclamunrar_iface.3.dylib
_unrar_extract_next referenced from libclamav expected to be defined in /usr/local/clamXav/lib/libclamunrar_iface.3.dylib
_unrar_extract_next_prepare referenced from libclamav expected to be defined in /usr/local/clamXav/lib/libclamunrar_iface.3.dylib
_unrar_open referenced from libclamav expected to be defined in /usr/local/clamXav/lib/libclamunrar_iface.3.dylib
make[1]: *** [blib/arch/auto/Mail/ClamAV/ClamAV.bundle] Error 1
make[1]: Leaving directory `/private/tmp/Mail-ClamAV-0.22/_Inline/build/Mail/ClamAV'

もしかして、
libclamav.3.0.4.dylib
libclamunrar.3.0.4.dylib
libclamunrar_iface.3.0.4.dylib

等が、必要なのかしらん...
取っておいて良かった。
cd /usr/local/clamXav/
mv lib.old/*3* lib/

コピーしても良かったが、移動した。
これで、だいたい成功。
いくつかのマシンでは、
perl Makefile.PL
実行後、

Checking if your kit is complete...
Looks good
Note (probably harmless): No library found for -lclamav
Writing Makefile for Mail::ClamAV

と、気になるメッセージが表示されたが、make; make test、が成功したので、導入してしまった。

Loepardの場合は、そのようなこともなく、すんなり導入できた。

もしかして、0.21の場合も、ライブラリーの問題だったのか...今となってはわからん。

いいのだ、できたから。



2台のLeopardマシンには、Mail::ClamAVをCPAN経由でも、手動でも導入できなかった。
ふと、思うことが有って、見ている9台のサーバたちを覗いて見ると、PowerPCマシンでは問題なく0.21版が導入されていた。
問題は、Intel Mac(Tiger)とLoepardマシン(1台はIntel Mac、もう1台はPowerPC)だ。
同じエラーが出ていた。

しかぁ〜し。
自宅のIntel Mac Leopard Serverでは、問題なく導入した記憶があるのだ。
ファイルの更新日付を見ると、導入した日付は、2008.3.22だった。

試しに、その時のソースファイルを使って、
make clean
perl Makefile.PL
make

してみると、なんと、エラーが出るではないか。
3月末といえば、ClamAVを0.92から0.93に上げた時期だ。
多分、0.93になって、何らかの不整合がでたのだろう、と、思いたい。

Googleで、Mail::ClamAV maxmailrecをキーワードに検索してみると、それなりにパッチもあるようなのだが、面倒なので、我慢するのだ。
Mail::SpamAssassin、が動いてくれているので、多分、なんとかなる、ばす...



perl Makefile.PL
->
Writing Makefile for Mail::ClamAV

make
->
/usr/local/bin/perl -Mblib -MInline=NOISY,_INSTALL_ -MMail::ClamAV -e1 0.21 blib/arch
Starting Build Prepocess Stage
Finished Build Prepocess Stage

Starting Build Parse Stage
Finished Build Parse Stage

Starting Build Glue 1 Stage
Finished Build Glue 1 Stage

Starting Build Glue 2 Stage
Finished Build Glue 2 Stage

Starting Build Glue 3 Stage
Finished Build Glue 3 Stage

Starting Build Compile Stage
  Starting "perl Makefile.PL" Stage
Writing Makefile for Mail::ClamAV
  Finished "perl Makefile.PL" Stage

  Starting "make" Stage
/usr/local/bin/perl /usr/local/lib/perl5/5.10.0/ExtUtils/xsubpp  -typemap /usr/local/lib/perl5/5.10.0/ExtUtils/typemap   ClamAV.xs > ClamAV.xsc && mv ClamAV.xsc ClamAV.c
cc -c  -I/private/var/root/.cpan/build/Mail-ClamAV-0.21-msCpQC -I/usr/local/clamXav/include -fno-common -DPERL_DARWIN -no-cpp-precomp -arch i686 -arch ppc -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include -O3   -DVERSION=\"0.21\" -DXS_VERSION=\"0.21\"  "-I/usr/local/lib/perl5/5.10.0/darwin-2level/CORE"   ClamAV.c
ClamAV.xs: In function 'clamav_perl_new':
ClamAV.xs: In function 'clamav_perl_new':
ClamAV.xs:53: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs:58: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs:53: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs:58: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs: In function 'clamav_perl_maxmailrec':
ClamAV.xs:141: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs: In function 'clamav_perl_maxmailrec':
ClamAV.xs:141: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs:143: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs:143: error: 'struct cl_limits' has no member named 'maxmailrec'
ClamAV.xs: In function 'clamav_perl_maxratio':
ClamAV.xs: In function 'clamav_perl_maxratio':
ClamAV.xs:180: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs:180: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs:182: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs:182: error: 'struct cl_limits' has no member named 'maxratio'
ClamAV.xs: In function 'clamav_perl_constant':
ClamAV.xs:365: error: 'CL_SCAN_PHISHING_DOMAINLIST' undeclared (first use in this function)
ClamAV.xs:365: error: (Each undeclared identifier is reported only once
ClamAV.xs:365: error: for each function it appears in.)
ClamAV.xs: In function 'clamav_perl_constant':
ClamAV.xs:365: error: 'CL_SCAN_PHISHING_DOMAINLIST' undeclared (first use in this function)
ClamAV.xs:365: error: (Each undeclared identifier is reported only once
ClamAV.xs:365: error: for each function it appears in.)
lipo: can't open input file: /var/tmp//ccWj2fKm.out (No such file or directory)
make[1]: *** [ClamAV.o] Error 1

A problem was encountered while attempting to compile and install your Inline
C code. The command that failed was:
  make

The build directory was:
/var/root/.cpan/build/Mail-ClamAV-0.21-msCpQC/_Inline/build/Mail/ClamAV

To debug the problem, cd to the build directory, and inspect the output files.

 at /private/var/root/.cpan/build/Mail-ClamAV-0.21-msCpQC/blib/lib/Mail/ClamAV.pm line 178
BEGIN failed--compilation aborted at /private/var/root/.cpan/build/Mail-ClamAV-0.21-msCpQC/blib/lib/Mail/ClamAV.pm line 556.
Compilation failed in require.
BEGIN failed--compilation aborted.
make: *** [ClamAV.inl] Error 25



ひと叢のほの紫のニワセキショウ
取り囲みたるアレルゲンども

CPANでupgradeに失敗。並びに、2台目のLeopardマシンでも導入失敗。
なんだか、わからない。

make test、で、エラーが出るのだな。
なんで、自分自身をロードできないのだ?
へんやでぇ〜


PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base......................1/6
#   Failed test 'use DBD::mysql;'
#   at t/00base.t line 21.
#     Tried to use 'DBD::mysql'.
#     Error:  Can't load '/private/var/root/.cpan/build/DBD-mysql-4.007-bbpx5C/blib/arch/auto/DBD/mysql/mysql.bundle' for module DBD::mysql: dlopen(/private/var/root/.cpan/build/DBD-mysql-4.007-bbpx5C/blib/arch/auto/DBD/mysql/mysql.bundle, 2): Symbol not found: _is_prefix
#   Referenced from: /private/var/root/.cpan/build/DBD-mysql-4.007-bbpx5C/blib/arch/auto/DBD/mysql/mysql.bundle
#   Expected in: dynamic lookup
#  at (eval 5) line 2
# Compilation failed in require at (eval 5) line 2.
# BEGIN failed--compilation aborted at (eval 5) line 2.
Bailout called.  Further testing stopped:  Unable to load DBD::mysql
make: *** [test_dynamic] Error 1


世の中には、似たような事で困っている人々が入るようで、こんなページを見つけた。
このサイトからは、Mac OS X用のPHPをダウンロードさせてもらっている。

ちなみに、1台目のIntel Mac Leopardに導入したMySQLは、
mysql-5.0.51b-osx10.5-x86_64
だったのだが、先のページに従えば、
mysql-5.0.51b-osx10.5-x86
にしといたほうがよい、と言うことになる。
2台目のPowerPC Loepardには、
mysql-5.0.51b-osx10.4-powerpc
を導入した。

最初は気付かなかったのだが、これら2台のLeopardマシンでは、/private/tmp/のアクセス権が、
drwxr-xr-x  10 root  wheel  -  476  5 18 23:01 tmp
となっといたのだった。
そして、MySQLのソケットが、この/private/tmp/にできていた。
そのような観点で見直すと、mysql-5.0.45を導入したマシンでは、全て、/private/tmp/にソケットが作られていた。確か、ちょっと前までは、
/private/var/mysql/mysql.sock
だったはずで、そうだと思い込んでいた。mysql_configコマンドで表示されているにも関わらず、だ、あれまぁ。

自宅のLeopard Serverでは、
/private/var/mysql/mysql.sock
だから、なおさら、思い込んでしまったのだな。
で、my.cnfを作成することにした。

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cd /etc/
vi my.cnf

クライアント、サーバともに、
/var/mysql/mysql.sock
と書き換える。
mysql_configの表示とずれるけど、今は知らない。そのうち、mysql_configを直接編集して整合性を取らないとならないだろうなぁ〜

肝腎の、DBD::mysql 4.007、は、手動で導入。
perl Makefile.PL \
        --libs="-L/usr/local/mysql/lib -lmysqlclient -lz -lm" \
        --cflags="-I/usr/local/mysql/include -Os -arch i686 -arch ppc -fno-common" \
        --testhost=127.0.0.1 -testuser=dsafe -testpassword=asdfase
make ; make test
make install

なんとかできた。
ふぅ

Loepardには、perl 5.8.8が既に導入されている。
とりあえず、CPANも利用できる。5.8.8のまま、CPANでupgradeしてもいいのだが、実際、実行してみたが、他のマシンでは5.10.0にしているので、揃えておきたい。
と・こ・ろ・がっ
自宅のLeopard Serverでは問題がなかったのだが、妙なエラーが出る。

ext/Cwd/t/cwd.................................................#   Failed test 'cwd()'

関係で失敗していた。
Failed 1 test out of 1385, 99.93% okay.

このパーセンテージがビミョー

setenv DYLD_LIBRARY_PATH `pwd`; cd t; ./perl harness
を実行してみると、共通して、
#          got: '/private/tmp/perl-5.10.0/t'
#     expected: '/tmp/perl-5.10.0/t'
なのだそうだ。

Leopardを導入する時、内蔵ハードディスクを初期化した。その時、大文字小文字を区別するようにしたのだが、関係あるのか...
いずれにしても、単純だ。

cd /private/tmp/perl-5.10.0
cd t; ./perl harness

実行結果は、
All tests successful, 77 tests and 840 subtests skipped.
Files=1465, Tests=188235, 947 wallclock secs (586.78 cusr + 131.71 csys = 718.49 CPU)

はい、お疲れさん。

逆に考えると、自宅のLeopard Serverでは、強行installしたのかも...

動いているから、いいのだっ



完全に参った。
/etc/postfix、内のファイルをいじくったのだけれども、なんだか、変っ!

職場サーバのために自腹を切るのは悔しいが、PostfixEnabler、のチカラを借りることにした。
ところがっ
Leopardでは、MailServeForLeopard、を使わなければならないらしい。

なんだか、設定項目が増えている。ふむ。
設定後、
/usr/local/cutedge

ができていた。設定ファイルどもは、
/usr/local/cutedge/postfix/etc

に入っている。
ふーん。

紛らわしいので、リンクを張った。

ls -s /usr/local/cutedge/postfix/etc/master.cf .
ls -s /usr/local/cutedge/postfix/etc/main.cf .
ls -s /usr/local/cutedge/postfix/etc/access .
ls -s /usr/local/cutedge/postfix/etc/access.db .
ls -s /usr/local/cutedge/postfix/etc/aliases .
ls -s /usr/local/cutedge/postfix/etc/aliases.db .

master.cf、には、ここと同じ記述を入れる。

clamd、freshclam、amavisd、それぞれ、ちゃんと動いてくれた。

ふぅ。


職場サーバを10時間ほどかけて仕上げる破目になった。
年度末にマシンは購入済み、旧サーバの利用のピークをさけ、ゆっくりと移行して行くつもりだったのだが、様々な圧力に負けましたっ
これまでの旧サーバは、Mac OS X Server 10.3、機能を考慮するとサーバでなくともなんとかなりそうだったので、マシンに付属の「普通の」Leopardをサーバに仕立てることにした。
自宅サーバはLeopard Serverで、特にスパム対策に関しては、適宜参照すればなんとかなる、と、タカをくくっていた、のだけれども、やはり、微妙に異なっていた。

そもそも、利用者登録して、UIDとGIDを自由に設定できない。
だから、ここで書いたようなグループの設定もできない。
困った。
が、参考になる記事を見つけた。
自宅サーバを設定していて、Tigerまでのように、rootを有効にしたり、グループにメンバーを追加したり、NetInfoマネージャーを利用しようと思ったのだが、そもそもそんなアプリケーションが、ないっ
nidumpやniloadもないっ
代わりに、dsclを使うのね。へぇ〜い。

ちょっと、覗いてみる。

dscl . -read /Groups/admin
dscl . -read /Groups/clamav
dscl . -read /Groups/amavisd

admin、を参考に、メンバーを追加。

dscl . -append /Groups/clamav GroupMembership _clamav _amavisd
dscl . -append /Groups/amavisd GroupMembership _amavisd _clamav

そして、起動用のplistを編集、追加。
amavisd用には既にplistが用意されているが、Disabled、状態。

cd /System/Library/LaunchDaemons/
vi org.amavis.amavisd.plist

次の2行を抹消※。
        <key>Disabled</key>
        <true/>

念のため、<key>Program</key>の部分も変えてしまった。
<string>/usr/local/bin/amavisd</string>

ただ、どうも、org.clamav.clamd.plist、では、<key>UserName</key>を
<string>_amavisd</string>

と、書かないとダメだった。Tigerでやった通りならば、
<string>_clamav</string>
と書けばよい筈、だったのだが...グループのメンバー登録をしくじったか...※※

いいのだ、動いたから。


========== ========== ========== ========== ==========
    org.amavis.amavisd.plist
========== ========== ========== ========== ==========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.amavis.amavisd</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/usr/local/bin/amavisd</string>
        <key>ProgramArguments</key>
        <array>
                <string>amavisd</string>
                <string>foreground</string>
        </array>
        <key>ServiceIPC</key>
        <false/>
        <key>UserName</key>
        <string>_amavisd</string>
</dict>
</plist>


========== ========== ========== ========== ==========
    org.clamav.freshclam.plist
========== ========== ========== ========== ==========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Iterations</key>
        <integer>1</integer>
        <key>Label</key>
        <string>org.clamav.freshclam</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/usr/local/clamXav/bin/freshclam</string>
        <key>ProgramArguments</key>
        <array>
                <string>freshclam</string>
                <string>-d</string>
                <string>-pfreshclam.pid</string>
                <string>-c 4</string>
        </array>
        <key>ServiceIPC</key>
        <false/>
        <key>UserName</key>
        <string>_clamav</string>
</dict>
</plist>


========== ========== ========== ========== ==========
    org.clamav.clamd.plist
========== ========== ========== ========== ==========
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>org.clamav.clamd</string>
        <key>OnDemand</key>
        <false/>
        <key>Program</key>
        <string>/usr/local/clamXav/sbin/clamd</string>
        <key>ProgramArguments</key>
        <array>
                <string>clamd</string>
        </array>
        <key>ServiceIPC</key>
        <false/>
        <key>UserName</key>
        <string>_amavisd</string>
</dict>
</plist>





CPANは、便利だ。依存関係にあるモジュールどもまで導入してくれる。

この存在を知らなかった時、1つのモジュールを導入している途中で、必要なモジュールがない、と、警告され、その必要なモジュールをまず導入して、いる途中で、必要なモジュールがない、と、警告され、その必要なモジュールをまず導入して、いる途中で、...やめたっ!
と、いうことになってしまっていた。

依存関係にあるモジュールどもを一気に導入してくれる、安心・便利・優れもの!
と、思っていた。
そこはそれ、モジュールを作成しているのはヒトだし、READMEあるいはINSTALLファイルを読んで、依存関係にあるモジュールを手作業で導入しなければならないことも有ったりする。

upgradeコマンドを使って、最新のモジュールにしようとしているのだが、何度も何度も同じモジュールを導入している。
こいつ、アホか、と、思ってみたりしたが、思うだけでは埒があかない。

確かに、最新モジュールは導入されてはいるようなのだが、何故、古いモジュールが存在していると認知しているのか、わからなかった。
古いモジュールが存在しているから、毎回、upgradeするのだよ、きっと。
で、最新モジュールは、別の場所に導入され、upgradeすると、古いモジュールを探し出して改めupgradeして、その古いモジュールが残ったままになっているに違いない。
さて、どこだ。

この時点で問題になっているのは、
Compress::Zlib
Time::Piece
URI
の3つ。

これらのうち、Compress::Zlibは、IO::Compress::Baseが古いと主張している。

cd /usr/local/lib/perl5/
find . -name Base.pm -ls -exec grep "VERSION = " {} \;

と、実行してみると、IO::Compress::Base、は、どうやら、

/usr/local/lib/perl5/5.10.0/darwin-2level/IO/
/usr/local/lib/perl5/5.10.0/IO/

の2ヶ所にあるようだ。perl -Vで表示されるパスと睨めっこして、バージョンの古いモジュールを削除してしまえっ

当該ファイルを探し、古ければ削除っ、えいっ!
...面倒なので、まとめて、やっ!

rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/IO/Compress/Base*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/IO/Uncompress/Base*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/IO/Compress/*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/IO/Uncompress/*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/Compress/*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/Uncompress/*
rm -rf /usr/local/lib/perl5/5.10.0/darwin-2level/File/GlobMapper*

かなり、乱暴!

改めて、CPANにて、

install IO::Compress::Base
install IO::Uncompress::Base

を実行して、最新モジュールであることを確認し、おもむろに、

install IO::Compress::Gzip
install Compress::Zlib

ただし、だ。
どうも、perl5.8.8、のモジュールと衝突(5.8.8のモジュールが最新で、5.10.0のモジュールが1世代前、あるいは逆)しているように見える。
つまり、findコマンドで見つけた、先の削除対象ファイルに、perl5.8.8、のモジュールが含まれている場合も有った。必ずしもそうではない、だから、困る。

perl -V、で表示されるパスが5.8.8のモジュールにも通っているということは、
/usr/local/bin/perl5.8.8、で、CPANのシェルを動かして、

/usr/localbin/perl5.8.8 -MCPAN -e shell

5.8.8のモジュールをupgradeしてやる方が、もしかすると、速い、かも...
部分的に削除してしまえば、パッケージリストの内容と矛盾が生じてしまう、し、な。
もっとも、5.8.8のモジュールにもパスが通っているのだから、そちらを利用できるのだし、とりあえず、1世代前のモジュールを削除しちまってもいいはず、理屈では。

ま、休みだし、のんびり作業することにしょっ、と。
サーバどもは9台有るし、取っ換え引っ換え、試してみたりして...1日、つぶれるな。

通院の日、だった。
昨夜は、4/29〜30にかけて徹夜したので、眠剤の力を借りるまでもなく、久々に、うまく寝入ることができた。
寝ることにこれだけ気を使う、というのは、極めて妙な話だが、それが病気ということだ。
3時過ぎ起きたが、どうにも眠くて、いつものようにそのまま起き出して作業するようなバカなことはしなかった。なかなか普通。
6時過ぎ、時計を確認、だが、ものすごく眠い。結局、そのまま寝入ってしまったようだ。
次に気付いた時に時計を見ると、13時を過ぎていた。
また、やっちまった。
結局、この3ヶ月、この調子で、満足に通院すらできなかった。
担当医に最後に会ったのは、3月中旬だ。
SSRIを切らして、服用停止による副作用が出て、それでも...それだからこそ、出て行けなくなって、へにょへにょになって、ギリギリで薬だけもらいに行って、またSSRIを切らして...
悪循環が続いた。
断ち切るチャンス、だったのに、な。

幸い、前回通院した時、担当医とは違うのだが診察してもらい、さらに薬は2週間分出してもらっていたので、SSRIは残っている。
あぁ、イヤだな。
まだ、眠いし。

副作用が出た。新規ブログ記事が作成できない。

Got an error: I18N::LangTags version 0.3 required--this is only version 0.27 at /usr/local/lib/perl5/5.10.0/Locale/Maketext.pm line 6.
BEGIN failed--compilation aborted at /usr/local/lib/perl5/5.10.0/Locale/Maketext.pm line 6.
Compilation failed in require at lib/MT/L10N.pm line 9.
BEGIN failed--compilation aborted at lib/MT/L10N.pm line 9.
Compilation failed in require at lib/MT.pm line 1571.

例のように、CPANモジュールを利用することにする。

cd ...../mt/extlib/I18N
mv LangTags _LangTags
mv LangTags.pm _LangTags.pm

とりあえず、整合性は取れているみたい。

QRコード

QRコード対応携帯からアクセスできます
QRコード対応携帯からアクセスできます  
Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type 5.12

Yahoo!ブログの記事

飼い主になっていただきます : 2012年01月14日

病院の玄関のフラワーポッド : 2012年01月10日

病院の水槽の生き物 : 2012年01月09日

2円の買い物 : 2012年01月07日

新年のご挨拶 : 2012年01月03日

阿蘇にて、2011/12/17-18 : 2011年12月20日

時速1000Km/hじゃ、の、別バージョン : 2011年12月19日

時速1000Km/hじゃ : 2011年12月18日

ぶどう、では、ない : 2011年12月15日

怖い顔 : 2011年12月13日

月別 アーカイブ

2011

  3 2 1

2010

  12 11 10 9 8 7 6 5 4 3 2

2009

  11 10 6 5 4 3 2 1

2008

  11 9 8 7 6 5 4 3 2

2007

  12 11 8 7 6 5 4 3 2 1

2006

  12 11 10 9 8 7 6 5 4 3 2 1

2005

  12 11 10 9 8 7 6 4 3 1

2004

  12 11 10 9 8 7 6 5 4

2003

  12 7 6 5 4 3 1

2002

  12 11 9 8 7 6 5 4 3 2 1

2001

  12 11 10 9 8 7 6 5 4 3 2 1

2000

  12 11 10 9 8