2008年4月アーカイブ

エラーログを見ていたところ、

Name "Locale::Maketext::Lexicon" used only once: possible typo at
/.../.../.../mt/extlib/Locale/Maketext.pm line 653.

というメッセージを発見してしまった。

File::Tempと同様、CPAN経由で導入したモジュールを使うようにしてみようか...

こちらも、要経過観察、だな。

どういうエラーだったのか、忘れてしまった。

CPAN経由で導入したモジュールの中に、File::Tempのバージョンが0.20でないと動かないのが有って、苦肉の策で、

.../mt/extlib/File/Temp.pm

を利用せず、CPAN経由で導入したFile::Tempを利用するようにしていた。


mt-check.cgiの出力によれば、最後にCPAN経由で導入したモジュールを探しに行く

...
/.../.../mt/addons/Commercial.pack/lib
/.../.../mt/extlib
/.../.../mt/extlib
/.../.../mt/lib
/usr/local/lib/perl5/5.10.0/darwin-2level
/usr/local/lib/perl5/5.10.0
/usr/local/lib/perl5/site_perl/5.10.0/darwin-2level
/usr/local/lib/perl5/site_perl/5.10.0
...

ようだったから、

.../mt/extlib/File/Temp.pm

をリネームしてしまったのだな。

まぁ、小心者のあたしとしては、念のために残しておいた、ということになるか。

特に、不具合は無いように思う、の、だか...


要経過観察。

なんだかよくわからない。
同じ時期に購入したMacPro、2台、なぜか、片方はすんなりほとんどの部品どもが導入可能、に対して、もう1台は1度ではなかなか導入が完了しない。

某学会のWebサイトを補助するためにMT4を利用している。このサーバがひねくれもの。
レスボンスが異常に遅い、と、事務局から苦情が来て、試してみると、確かにおそぉ〜い。
再構築すると、途中で何度かログインしなければならないし、さらに、完了したというページが真っ白。
で、(やっと)ログをみると、mage::Magick::AUTOLOADがメモリーのオーバーフローを起こしていた!
Deep recursion on subroutine "Image::Magick::AUTOLOAD" at /usr/local/lib/perl5/site_perl/5.8.8/perl(4298) malloc: *** vm_allocate(size=8421376) failed (error code=3)
perl(4298) malloc: *** error: can't allocate region
perl(4298) malloc: *** set a breakpoint in szone_error to debug
Out of memory!

うーん、困った。
そう言えば、perl 5.8.8も5.10.0も、うまく導入できなかった...ので、強引に導入したかも...

仕方ないので、再導入、することに、した。

サーバは、使っている人がいないときにしかメンテナンスできない。
自分の授業のビデオをエンコードしながら、夜中に作業する。
桂枝雀と同じで、自分の授業が一番面白い。ゲラゲラ笑いながら作業できるのはいいね。


perl 5.8.8を導入してみると、結局、エラーが3つ出ていた、が、結局、強引に導入してしまうのであった。
そもそも、make testの時に、Time::HiResでタイムアウトしてしまう。
もう片方の、素直に導入できた機械でperl -Vを実行し、ccflags等を調べ、無駄だろうけれども、長々としたコマンドでMakefileを作った。

sh Configure \
-Accflags='-fno-common -DPERL_DARWIN -no-cpp-precomp -arch i686 -arch ppc -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include' \
-Acppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -arch i686 -fno-strict-aliasing -pipe -I/usr/local/include -I/opt/local/include' \
-de

結局、これでもダメで、Sys::Syslog、CGI、I18N::Collateのテストでエラーになる。
はぅ〜
CPANに期待する。最新版のモジュールを入れちまえ。
が、妙なところで引っかかる。

Use of uninitialized value in concatenation (.) or string at /usr/local/lib/perl5/5.8.8/darwin-2level/Scalar/Util.pm line 30.

...そもそも、cpan shell、の、バージョンを上げられない、(v1.7602)のまま。
...それは我慢することにして...

仕方ないので、force install Scalar::Util、を強行。
これまでに導入したモジュールを一つずつ確認、それなりに導入されていた。

さぁ〜って、問題はっ
メモリーオーバーフローしていた、Image::Magick::AUTOLOAD、だ。
念のため、port upgrade installed、を実行しておく。
READMEによると、

  * Run tests using the installed ImageMagick ('make install' must be done
    first!).

らしい。なぁ〜んか、嫌な気分だね。チェックが先だろうて。

./configure --with-perl --with-jpeg --with-png --with-tiff --without-x --without-gslib
make
make install
make check

結果は...
===========================================
All 696 tests behaved as expected (44 expected failures)
===========================================

と、なってくれれば、大成功、なのだが...

===========================================
57 of 696 tests failed
Please report to http://www.imagemagick.org
===========================================

ふん、reportなんてしてやんない。
強行突破、で。

cd PerlMagick && make CC='gcc' test

途中、何度も、

sh: line 1: gs: command not found

とは表示されるが...先のmake checkでも同様...

Result: PASS

となった。よしよし。イントール、したれ、えいっ。

make install


mt-check.cgiを実行してみると、ちゃんと導入されているようだ。
後は、ログファイルに先のようなエラーが出ていなければ、安心して眠れる。

某学会のサイトを補助するブログを再構築してみた、ところ、エラーメッセージは出てなかった!
くぅ〜

寝る。

人前で
張り切っている
吾がゐて
へにょへにょになる
吾をとぢ込む

...へにょへにょの吾を知りたる人はなくますますちぢむへにょへにょの吾

phpMyAdminでMT4のデータベースをながめる。
オーバーヘッドのあるレコードを最適化して、試みに、mt_trackbackの内容を表示してみたところ、トラックバックの一覧と一部整合性が取れていないレコードがあることに気付いてしまう。
どうも、標記に関係しているような気がする。
というのも、MT4を利用する前、MT-3.35-jaを使っていたのだが、例のパッチを当てていなかったのだな、多分。
時期が時期だけに、へにょへにょのまま、configファイルだけを修正してその他のファイルはそのまま複写したはずだ。
幸い、先のインポート作業では、過去のトラックバックも再現されていて、全てをやり直す必要はなさそうだ。
リンクをたどって、見つけたのが、次のページ。
http://as-is.net/blog/archives/001090.html

なるほど、そういうことね。
早速、CGIを実行して調べてみると、整合性は取れている、という表示。
うーん。

日曜だし、ちまちまと作業するか、と、やり始めたのが、
phpMyAdminでMT4のデータベースのmt_trackbackを表示して、トラックバックが失敗しているレコードのtrackback_entry_idを元にして記事を編集、trackback_idを元にして再トラックバックする作業。
幸か不幸か,なんというか,2007年は記事が少ないので何とかなる。
編集ページでは、案の定、過去に送ったトラックバック先が表示されない...仕様かも。

ところがっ
単純作業を繰り返していると、11件目から、また、標記のエラーが出始めた。
これは、同一IPアドレスからのトラックバックを禁止する、という、スパム対策が効いているからだろう。
適当に休みなさい、と、解釈するか。
でも、悔しいな。

で、改めて、お勉強。
http://hxxk.jp/2006/09/07/2310

調整、難しいっす。


景気付け猪口一杯のアルコール連続飲酒に代わりたる秋

呑んで寝て食欲はなしまた呑んで紫煙の先に漂へる蟲

酔ふことも
足ることもなく
呑む酒で
充つこともなく
ヒトを離れる

ガラム吸い
缶ビール開け
借り受けし
今日の元気は
3倍還し

老父母の
口癖しみる
玄関は
ゆるゆるとした
時間が流る

両脇の
女性の頭
二の腕に
ビミョーに触れき
セクハラならむ

...だって,そう思ったんだもん
故郷の街彷徨ひて知りたくも知られたくもなし上げられぬかほ

故郷の街見つめ来る中年の顔知りたるや頼りなき脳

それぞれに道極めたるはずなりし幼きままのかほ浮かぶのみ


...酔っぱらってました
昨年の秋から更新が途絶えたこのブログ,歌を詠む余裕すらなかった,と,思っていたのだが,ケータイ電話には,書きかけ,完成版,いくつか残っていた。
ちゃんと,詠んでるじゃん。
以下,載せちゃう。

それぞれに咲き誇りたる花びらの死骸の山の雨上がりなり

それぞれに雄蕊雌蕊を延ばしたるツツジサツキの花揺れる午後

久々に良く寝た。
金曜日は,夜中の2時に起きて,ずっと仕事をして,さらに,授業を3コマやって,帰ったのが22時30分,すぐに眠剤を服用して布団に入って,何やらキーボードを叩いていたら久々に眠気が襲ってきて,寝たのが金曜の夜中。

土曜日は,8時から仕事。11時過ぎから通院の準備,ようやく診察を受ける事がでした。
担当医とは違うが,クリニックの責任者の医師だった。
常々,薬の量が多いなぁ,と,思っていたのだけど,やはり,その医師もそのように判断したように思う。
特に,SSRIパキシルの1日の摂取量が日本人の限界量に達している。それで効果が無いのであれば,別の薬に代える時期に来ているだろう。
このひと月,思うように通院できず,度々,SSRIパキシルの服用停止による副作用に苦しめられた。
耳鳴りにふらつき,電気ショック様感覚異常,慣れたと言えば,慣れちまった。
人間の良いところで,慣れるのである。
とは言え,歩を進めるたびにかかとから百会...頭頂部にある経穴...まで全身に電気ショックが走るのは困る。
内耳の奥でかんしゃく玉がなるのも困る。服用停止後,一週間を過ぎると,かんしゃく玉が連続して爆発する,爆竹と言った方が適切かもしれない。
でも,慣れる。
授業をしている時には,気にならないし,恐らく,受講生たちは気付かないだろう。あたし自身,そんな状態であった事すら忘れているのだし。
授業後がすさまじい。
緊張の糸が切れ,部屋に戻る途中はへたり込みたくなる。

土曜日の通院帰りにSSRIパキシルを服用したから,効いてくるまであと2日。
通院の帰り,いつも一服して歌を詠む場所で日向ぼっこを楽しんだ。
風は強かったが,気分が良かった。
服用した,という安心感だろうな。何しろ,副作用はあるのだから。

50,000レコードのデータから「必要な」レコードを抽出、記述統計を示せとの指令を受けている。
こんなになるまでためたのが悪いんっすけどね。
何かというと、某IT利用室と某メディアミックス室の入退出記録。過去、8年分のデータだ。
今回の対象は某IT利用室。それでも、40,000レコード近くある。

情報教育をやっていた時、データベースの演習では、最低5,000レコードないと演習に意味が出てこない、と、考えるようになった。勿論、当時の仲間たちとの話し合いの結果だ。
それにしても、既に生産中止になったアプリケーションを使っているのだが、よく動いているぜ、すごい。

それはそれとして、何のために記述統計をするのか、目的が明確ではない。つまり、どんなレコードが必要なのか、不明。
まさに、学生が、こんなデータが集まったんですけど、or、こんな実験結果になったんですけど、どうしましょう...と、言っているみたいなもんで、記述のしようがないのだな。
一応、指導生の論文指導の時ならば、いろいろと捏ね繰り回してそれっぽいのを見つけてやることもあるけどさ。
あ〜、くらくらする。

くらくらする、のは、実は、SSRIがキレている所為もある。
通院できずに1週間が過ぎた。予備の薬がなくなって、既に4日。
いつぞやの時と同様、電気ショック様感覚異常、耳鳴り、ふらつきが出てきている。

それにしても、今回の最初の耳鳴りは凄かった。
内耳の内側でかんしゃく玉が鳴るような感じがするのだが、以前とは比較にならないほど大きなかんしゃく玉だった。
寝入りばなで、右、左、と時間差攻撃を受け、飛び起きてしまった。
で、そのまま起きてしまったりして、睡眠障害に拍車がかかる。

そのうちに眠くなるだろうという予測の元、眠剤を服用してこの記事をまとめているのだが、気配もない。
まだ、落ち着いて書く気になれないでいるのだが、アルコール依存症の所為だろう。

横になって、枕に頭を就けてじっとしていればなんとかなる、ことを祈る。
それにしても、診断名がついてから既に8年を経過しているのだが、そして、それ以前からなのだが、寝る、という極めて自然な行動の筈なのに、こんなに努力しなければならない、というのは、なんとも......言葉が見つからない。


と、きやがったか。
直ってない、というより、仕様だから仕方ないか。
...先人たちが書いているように、http://www.sixapart.jp/support/mt4/error/http_error_403.htmlはあてにならない。
いくらスパムコメント・トラックバック対策とはいえ、自分が自分にトラックバックできないのは妙だ、ぜ。

MT3の時と同じパッチをあててみる。

かつて参考にしたページのいくつかは、Not Found。
本家が残っていればよいか。
http://code.as-is.net/public/wiki/3.2-ja-2_UO_Patch
http://kokogiko.net/m/archives/001350.html

cd .../mt/lib/MT/App/
vi Trackback.pm

MT3と同様に2ヶ所を変更。
エラーの出ていた記事を再構築、どうやら、トラックバックはできているようだ。

さて、本職に戻るか。
続く...
困ったのである。
サーバたちに定期的に作業させようとして、crontabを編集したのだが、さっぱり反映されない。
よくよくメッセージを見たら、ちゃんと、
crontab: temp file must be edited in place
という警告が出ているではないか。

検索してみると、あちこちで困っている人々がいるようだ。
なんでも、一時ファイルを作る、とか、作らない、とか。

サーバたちの中で、唯一、Leoperdサーバ...このブログ等の実験用自宅サーバ...ではそのようなことは起きていないことに気付く。

MacPortsを使って、vimのバージョンを上げた。
その際、カーソルが括弧どもに移動すると対応する括弧が強調される機能が気に入って、
:set showmatch
と1行書いた.vimrcを作成しまくっていたのだな。

で、グローバルな環境設定ファイル、
/usr/share/vim/vimrc
の中の記述、
" Don't write backup file if vim is being called by "crontab -e"
au BufWrite /private/tmp/crontab.* set nowritebackup
" Don't write backup file if vim is being called by "chpass"
au BufWrite /private/etc/pw.* set nowritebackup

が気になったのだけれども、何だかよくわからんかったので、無視してしまっていた...
これが敗因だろう。
何しろ、ちゃんと例外が書いてあるのだから。

問題は、このグローバルな環境設定よりも自分の作った.vimrcが優先されることだな。
なんで?
仕様だよな...ドキュメント読みなさい、はい。
仕方ないので、同じ記述を.vimrcに書いてみることにした。

Leopardの場合は、portsでバージョンを上げていないから、/usr/share/vim/vimrcを参照しているのだと思いたい。
それ以外の、portsでvimのバージョンを上げたサーバたちは、
/usr/local/share/vim/
の中のvimrcを参照するのか???

面倒だから、考えたくない。


それよりも、P2Pと、IPアドレスの不正使用の犯人の燻り出しが優先するのだ。

Pantherで、chkclamavを実行してみたら、amavisdが動いていなかった。
コマンドラインで実行してみると、

dyld: perl can't open library: /usr/local/clamXav/lib/libclamav.3.dylib  (No such file or directory, errno = 2)
Trace/BPT trap

え゛っ、libclamav.3.*が必要なの...
削除してから導入しなさいってのは、誰の指示だっけ...

まぁ、必要だ、というのであれば、用意しましょう。
幸い、削除してはなかったので...


cd /usr/local/clamXav/lib/
mv ../lib.old/*3* .


stopclamav
startclamav

Intel Macのサーバでは、0.92.1は、/usr/bin/に導入されていた。
導入した記憶はない。他のマシン同様、/usr/local/bin/にあると思い込んでしたのでした。
で、ちょっと移動させたりする。


========== ========== ========== ========== ==========
    mv old files & make symbolic link
========== ========== ========== ========== ==========
cd /usr/bin/
mv clamav-config clamav-config.org2
mv clamconf clamconf.org2
mv sigtool sigtool.org2
mv freshclam freshclam.org2
mv clamdscan clamdscan.org2
mv clamscan clamscan.org2

cd /usr/sbin/
mv clamd clamd.org2

cd /usr/local/bin
ln -s /usr/local/clamXav/bin/* .
cd /usr/local/sbin/
ln -s /usr/local/clamXav/sbin/* .

stopclamav
freshclam
startclamav

なんだって、さ。
たまたまチェックした、freshclam.logに書かれていた。「たまたま」なんだよ、怖いな。
自動的にアップデートさせようというプロジェクトもあるようだ。
まだ、導入していない。相互互助のUNIX精神に基づけば、参加、すべきだな。

とりあえず、自助努力する。
といっても、メモに基づいて作業してみるだけなんだか。
これまで使っていたのが、0.92.1で、それを0.93に上げる。

最初に、このサーバで試す。Leopardサーバは問題なく導入可。
困ったのは、TigerとPanther。特に、Panther。後で、なんということもないことはわかったのだけれども...

まずは、メモに基づいて、次のコマンドを実行。
./configure --prefix=/usr/local/clamXav CFLAGS='-g' && make

すると...
ld: warning can't open dynamic library: /usr/local/clamXav/lib/libclamunrar.4.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
ld: Undefined symbols:
_ppm_constructor referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.4.dylib
_ppm_destructor referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.4.dylib
_rar_init_filters referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.4.dylib
_rar_unpack referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.4.dylib
_rarvm_free referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.4.dylib
/usr/bin/libtool: internal link edit command failed
make[3]: *** [libclamav.la] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

ありゃまぁ。軒並み、libclamunrar.4.dylibに関するエラーが出て止まってしまった。
必ず、同様のエラーで困っている人々はいるもので...
http://www.mail-archive.com/clamav-users@lists.clamav.net/msg29093.html
http://www.mail-archive.com/clamav-users@lists.clamav.net/msg29165.html

なんでも、Japanese userが報告したらしい。すごい。

まぁ、環境が異なるので、
./configure CFLAGS="-O0"
で成功したぜぃ、とか、
./configure --enable-experimental"
で、うまく動いてまっせぇ、快適だす、など等...あてにはならないかも。

案の定、巧くできたマシンもあれば、ダメダメのマシンもあって、困る。
gccのバージョンの問題かも、なんて考え始めて、ハマる。
結局、gcc 4.3の導入、フラグの調整は諦めて、シンプルに、削除!

cd /usr/local/clamXav
mv lib lib.old

気が小さいので、削除はできなかったのだけど...
念のため、CPANでモジュールを確認。
install Locale::gettext
install autoconf

幸い、PowerPC MacでもIntel Macでも、なんとかなった。
...Pantherの場合、install autoconfは失敗する、が、結果的に、問題はないようだ。


========== ========== ========== ========== ==========
    Power Mac ... Tiger & Panther
========== ========== ========== ========== ==========
cd /usr/local/clamXav
mv lib lib.old

./configure --prefix=/usr/local/clamXav CFLAGS='-g'
make ; make check
make install


========== ========== ========== ========== ==========
    Intel Mac ... Tiger
========== ========== ========== ========== ==========
cd /usr/local/clamXav
mv lib lib.old

./configure --prefix=/usr/local/clamXav --build=i686-apple-darwin`uname -r` CFLAGS='-g'
make ; make check
make install

... 恐らく、分ける必要はないと思う。 --build=i686-apple-darwin`uname -r`は必要ないだろう。つまり、Pantherと同様、
./configure --prefix=/usr/local/clamXav CFLAGS='-g'
で、通ると思う。
そうなると、次も怪しいな。


========== ========== ========== ========== ==========
    Intel Mac ... Loepard ( server )
========== ========== ========== ========== ==========
sh
export CFLAGS='-arch i686'
export LDFLAGS='-arch i686'
./configure --prefix=/usr/local/clamXav --build=i686-apple-darwin`uname -r`
make && make check
make install

or
./configure --prefix=/usr/local/clamXav --build=i686-apple-darwin`uname -r` CFLAGS='-arch i686' LDFLAGS='-arch i686'
make ; make check
make install


========== ========== ========== ========== ==========
    Tiger
========== ========== ========== ========== ==========
#!/bin/csh -f
/usr/sbin/netstat -Ana -p tcp | /usr/bin/head -2
/usr/sbin/netstat -Ana -p tcp | /usr/bin/grep 1002
echo ""
/bin/ps auxw | /usr/bin/head -1
/bin/ps auxw | /usr/bin/grep ^clamav | /usr/bin/grep -v grep | /usr/bin/grep -v chkclamav
/bin/ps auxw | /usr/bin/grep ^amavisd | /usr/bin/grep -v grep


========== ========== ========== ========== ==========
    Panther
========== ========== ========== ========== ==========
#!/bin/csh -f
/usr/sbin/netstat -Ana -p tcp | /usr/bin/head -2
/usr/sbin/netstat -Ana -p tcp | /usr/bin/grep 1002
echo ""
/bin/ps auxw | /usr/bin/head -1
/bin/ps auxw | /usr/bin/grep ^clamav | /usr/bin/grep -v grep | /usr/bin/grep -v chkclamav
/bin/ps auxw | /usr/bin/grep ^amavisd | /usr/bin/grep -v grep


========== ========== ========== ========== ==========
    Leopard
========== ========== ========== ========== ==========
#!/bin/csh -f
/usr/sbin/netstat -Ana -p tcp | /usr/bin/head -2
/usr/sbin/netstat -Ana -p tcp | /usr/bin/grep 1002
echo ""
/bin/ps auxw | /usr/bin/head -1
/bin/ps auxw | /usr/bin/grep ^clamav | /usr/bin/grep -v grep | /usr/bin/grep -v chkclamav
/bin/ps auxw | /usr/bin/grep ^amavisd | /usr/bin/grep -v grep

========== ========== ========== ========== ==========
    Tiger
========== ========== ========== ========== ==========
#
launchctl stop org.clamav.clamd
#
launchctl stop org.clamav.freshclam
#
launchctl stop org.amavis.amavisd
#


========== ========== ========== ========== ==========
    Panther
========== ========== ========== ========== ==========
#
launchctl stop org.clamav.clamd
/Library/StartupItems/clamd/clamd restart
#
launchctl stop org.clamav.freshclam
/Library/StartupItems/freshclam/freshclam restart
#
/Library/StartupItems/amavisd/amavisd restart
#


========== ========== ========== ========== ==========
    Leopard
========== ========== ========== ========== ==========
#
launchctl stop org.clamav.clamd
#
launchctl stop org.clamav.freshclam
#
launchctl stop org.amavis.amavisd
#

========== ========== ========== ========== ==========
    Tiger
========== ========== ========== ========== ==========
#
launchctl unload /System/Library/LaunchDaemons/org.clamav.clamd.plist
launchctl stop org.clamav.clamd
#
launchctl unload /System/Library/LaunchDaemons/org.clamav.freshclam.plist
launchctl stop org.clamav.freshclam
#
launchctl unload /System/Library/LaunchDaemons/org.amavis.amavisd.plist
launchctl stop org.amavis.amavisd
#


========== ========== ========== ========== ==========
    Panther
========== ========== ========== ========== ==========
#
/Library/StartupItems/clamd/clamd stop
#
/Library/StartupItems/freshclam/freshclam stop
#
/Library/StartupItems/amavisd/amavisd stop
#
#


========== ========== ========== ========== ==========
    Leopard
========== ========== ========== ========== ==========
#
launchctl unload /System/Library/LaunchDaemons/org.clamav.clamd.plist
launchctl stop org.clamav.clamd
#
launchctl unload /System/Library/LaunchDaemons/org.clamav.freshclam.plist
launchctl stop org.clamav.freshclam
#
launchctl unload /System/Library/LaunchDaemons/org.amavis.amavisd.plist
launchctl stop org.amavis.amavisd
#
#

========== ========== ========== ========== ==========
    Tiger
========== ========== ========== ========== ==========
#
launchctl load /System/Library/LaunchDaemons/org.clamav.clamd.plist
launchctl start org.clamav.clamd
#
launchctl load /System/Library/LaunchDaemons/org.clamav.freshclam.plist
launchctl start org.clamav.freshclam
#
launchctl load /System/Library/LaunchDaemons/org.amavis.amavisd.plist
launchctl start org.amavis.amavisd
#


========== ========== ========== ========== ==========
    Panther
========== ========== ========== ========== ==========
#
/Library/StartupItems/clamd/clamd start
#
/Library/StartupItems/freshclam/freshclam start
#
/Library/StartupItems/amavisd/amavisd start
#


========== ========== ========== ========== ==========
    Leopard
========== ========== ========== ========== ==========
#
launchctl load /System/Library/LaunchDaemons/org.clamav.clamd.plist
launchctl start org.clamav.clamd
#
launchctl load /System/Library/LaunchDaemons/org.clamav.freshclam.plist
launchctl start org.clamav.freshclam
#
launchctl load /System/Library/LaunchDaemons/org.amavis.amavisd.plist
launchctl start org.amavis.amavisd
#

========== ========== ========== ========== ==========
    Launch Daemons
========== ========== ========== ========== ==========
launchctl load /Library/LaunchDaemons/org.clamav.freshclam.plist
launchctl start org.clamav.freshclam

launchctl load /Library/LaunchDaemons/org.clamav.clamd.plist
launchctl start org.clamav.clamd

launchctl load /Library/LaunchDaemons/org.amavis.amavisd.plist
launchctl start org.amavis.amavisd


========== ========== ========== ========== ==========
    vi /Library/LaunchDaemons/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>clamav</string>
</dict>
</plist>


========== ========== ========== ========== ==========
    vi /Library/LaunchDaemons/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/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>


========== ========== ========== ========== ==========
    vi /Library/LaunchDaemons/org.amavis.amavisd.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.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>

========== ========== ========== ========== ==========
    clamd
========== ========== ========== ========== ==========
mkdir /Library/StartupItems/clamd/

Resources/ は、BINDからコピーしたりして...

vi StartupParameters.plist
{
  Description     = "clamd";
  Provides        = ("clamav");
  Requires        = ("Network");
  Uses            = ("Network");
  OrderPreference = "None";
}

vi clamd
#!/bin/sh

##
#  clamd.
##

. /etc/rc.common

StartService ()
{
    ConsoleMessage "Starting clamd"
    /usr/local/clamXav/sbin/clamd &
}

StopService ()
{
    ConsoleMessage "Stopping clamd"
    kill -TERM `cat /var/amavis/clamd.pid`
}

RestartService ()
{
    ConsoleMessage "Restarting clamd"
    if [ -x /var/amavis/clamd.pid ]; then
        kill -HUP `cat /var/amavis/clamd.pid`
    else
        /usr/local/clamXav/sbin/clamd RELOAD &
    fi
}

RunService "$1"


========== ========== ========== ========== ==========
    freshclam
========== ========== ========== ========== ==========
mkdir /Library/StartupItems/freshclam/

Resources/ は、BINDからコピーしたりして...

vi StartupParameters.plist
{
  Description     = "freshclam";
  Provides        = ("clamav");
  Requires        = ("Network");
  Uses            = ("Network");
  OrderPreference = "None";
}

vi freshclam
#!/bin/sh

##
#  freshclam.
##

. /etc/rc.common

StartService ()
{
    ConsoleMessage "Starting freshclam"
    /usr/local/bin/freshclam -u clamav -d -pfreshclam.pid -c 4 &
    ConsoleMessage "Starting clamd"
    /usr/local/clamXav/sbin/clamd &
}

StopService ()
{
    ConsoleMessage "Stopping freshclam"
    kill -TERM `cat /var/clamav/freshclam.pid`
}

RestartService ()
{
    ConsoleMessage "Restarting freshclam"
    if [ -x /var/clamav/freshclam.pid ]; then
        kill -HUP `cat /var/clamav/freshclam.pid`
    else
        /usr/local/bin/freshclam --daemon-notify=/etc/clamd.conf &
    fi
}

RunService "$1"


========== ========== ========== ========== ==========
    amavisd
========== ========== ========== ========== ==========
mkdir /Library/StartupItems/amavisd/

Resources/ は、BINDからコピーしたりして...

vi StartupParameters.plist
{
  Description     = "amavisd";
  Provides        = ("amavisd");
  Requires        = ("Network");
  Uses            = ("Network");
  OrderPreference = "None";
}

vi amavisd
#!/bin/sh

##
#  Amavisd.
##

. /etc/rc.common

StartService ()
{
    ConsoleMessage "Starting amavisd"
    /usr/local/bin/amavisd
}

StopService ()
{
    ConsoleMessage "Stopping amavisd"
    killall -TERM -u amavisd
}

RestartService ()
{
    ConsoleMessage "Restarting amavisd"
    if [ -x /var/amavis/amavisd.pid ]; then
        kill -HUP `cat /var/amavis/amavisd.pid`
    else
        /usr/local/bin/amavisd
    fi
}

RunService "$1"

手始めに、
install LWP::Simple Bundle::LWP Bundle::CPAN HTTP::Date Jcode

Intel Macの場合、次のモジュールは導入を拒否。
    Mac::Carbon [requires]
    Mac::Files [requires]

どんどん行きまっせぇ〜
MT3, MT4に必要なモジュールも入れちまう。

install CGI HTML::Template Image::Size File::Spec CGI::Cookie

ちょっと、テスト関係のモジュールも入れてみたりする。

install Devel::Symdump Pod::Coverage Test::Base Test::Pod::Coverage Test::Pod
install Test::Tester Test::Exception Test::Warn Test::NoWarnings Parse::RecDescent
install Pod::Strip Test::Deep Test::Perl::Critic Test::Memory::Cycle
install Test::Distribution Test::Portability::Files
install Test::Taint Readonly::XS

install Module::CPANTS::Analyse
install Test::Kwalitee
...うまくできない場合もあるのだが、気にしないのだ。

install DB_File DBI HTML::Entities LWP::UserAgent
install DateTime::Format::Strptime DateTime LWP::Authen::Wsse Digest::SHA1
install bignum Math::BigInt Math::BigRat Digest::BubbleBabble
install File::Temp Storable Crypt::DSA MIME::Base64
install Date::Manip IO::Tty Parse::Yapp::Driver
install Email::Valid::Loose
install RPC::PlClient RPC::PlServer Net::Daemon

install Archive::Zip Compress::Zlib Convert::TNEF Convert::UUlib MIME::Base64 MIME::Parser
install Mail::Internet Net::Server Digest::MD5 IO::Stringy Time::HiRes Unix::Syslog Math::GMP

MySQLが導入されているのなら...導入していたので...
install DBD::mysql
->MakeFile.PLを書き直さなければならない...追記


install XML::Parser
->見事に失敗
手動で導入。
perl Makefile.PL EXPATLIBPATH=/usr/local/lib/perl5/5.8.8/darwin-2level  EXPATINCPATH=/usr/local/include

次もなんとか導入できるはず。

install XML::DOM
install XML::Atom

いよいよ、ClamAV関係モジュールの導入。

install ClamAV::Client ClamAV::Config
install Inline::C
install Mail::ClamAV

install SOAP::Lite
install Text::Iconv
...なんだか、うまくできない。気にしない。

install Socket6
install IO::Socket::INET6
install Net::DNS::Resolver
... DNSがちゃんと動いていないと失敗する。
CPANをだますなら、外部接続テストをしないこと。

o conf makepl_arg '--noxs --no-online-tests'
install Net::DNS::Resolver

install Net::LDAP Authen::SASL
...
These tests *will* *fail* if you do not have network connectivity. [y] n
当然、NO!


========== ========== ========== ========== ==========
    Razor2
http://razor.sourceforge.net/
razor-agents-2.84.tar.bz2
razor-agents-sdk-2.07.tar.bz2
========== ========== ========== ========== ==========
これらも導入しておく必要があるようだ。
基本的には、普通のPerlモジュールの導入と同じ。

tar jxvf razor-agents-2.84.tar.bz2
cd razor-agents-2.84
perl Makefile.PL
make ; make test
make install

tar jxvf razor-agents-sdk-2.07.tar.bz2
cd razor-agents-sdk
perl Makefile.PL
make ; make test
make install


念のため、
CPAN> upgrade
なんてこともしてみたりする。



========== ========== ========== ========== ==========
    Mail::SpamAssassin
========== ========== ========== ========== ==========
READMEによると、次のモジュールが必要らしい。

install HTML::Parser
install Mail::DomainKeys
install IP::Country
install Mail::SPF::Test
install Mail::SPF
install Mail::SPF::Query
 -> namedがきちんと動いていないと失敗する。
install IO::Socket::INET6
install Mail::DKIM
install Data::Dump
install Encode::Detect

# install Net::Ident ... 導入できない。必要ないかも。


で、install Mail::SpamAssassinだが...
make
の後で、t/config.distを編集。

vi t/config.dist
user_awl_sql_username=UserNAME
user_awl_sql_password=User'sPW
bayes_sql_username=UserNAME
bayes_sql_password=User'sPW

これらを設定しておかないと、make testでコケる。

make test
make install

へい、お疲れさま。


そうそう、うまく導入できたりできなかったり、したモジュールが、
XML::ParserとNet::SSLeay
perl5.8.8でうまくできなかったので、perl5.10.0に上げちまった。

於CPAN
o conf makepl_arg 'INSTALLDIRS=site LIB=/usr/local/lib/perl5 PREFIX=/usr/local/lib/perl5/5.8.8/CPAN EXPATLIBPATH=/usr/local/lib EXPATINCPATH=/usr/local/include'
install XML::Parser

o conf makepl_arg '-- INSTALLDIRS=site LIB=/usr/local/lib/perl5 PREFIX=/usr/local/lib/perl5/5.8.8/CPAN'
install Net::SSLeay

とか。

cd Net-SSLeay-xxxxx/
perl Makefile.PL -path /usr/bin CCFLAGS='-I/usr/local/include +e'
とか。

単に、
install Net::SSLeay
でよかったり...

悩んでいても仕方ない。
それなりに導入できたのだし。
force installはしなかったし。
いいことにするのだっ



========== ========== ========== ========== ==========
    /etc/postfix/aliases
========== ========== ========== ========== ==========
cd /etc/postfix/aliases
vi aliases

# Put your local aliases here.
->
# Put your local aliases here.
virusalert:     root
spamalert:      root


保存したら、
newaliases
を実行。

個人的な好みから言うと、
cd /etc/
mv aliases.db postfix
ln -s postfix/aliases.db .

といった感じ。次は、master.cfの編集。


========== ========== ========== ========== ==========
    vi /etc/postfix/master.cf
========== ========== ========== ========== ==========
以下を最後の行の次に追加。それだけ。
保存できたら、
postfix reload


#
#
smtp-amavis unix -      -       y       -       2       smtp
   -o smtp_data_done_timeout=1200
   -o smtp_send_xforward_command=yes
   -o disable_dns_lookups=yes
#
127.0.0.1:10025 inet n  -       y       -       -       smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks=127.0.0.0/8
   -o smtpd_enforce_tls=no
   -o strict_rfc821_envelopes=yes
   -o smtpd_error_sleep_time=0
   -o smtpd_soft_error_limit=1001
   -o smtpd_hard_error_limit=1000
   -o receive_override_options=no_header_body_checks

登録したuserとgroupとの間で不整合が起きないように。
先に作成したディレクトリと整合性を取るように。


cd /etc/
vi /etc/amavisd.conf

$daemon_user  = 'vscan';
->
$daemon_user  = 'amavisd';

$daemon_group = 'vscan';
->
$daemon_group = 'amavisd';

$mydomain = 'example.com';
->
$mydomain = 'imackume.kumecchi.net';

# $MYHOME = '/var/amavis';
->
$MYHOME = '/var/amavis';

$log_level = 0;
->
$log_level = 2;

add
$LOGFILE = "/var/log/amavis.log";

$mailfrom_notify_spamadmin = "spam.police\@$mydomain"; # notifications sender
->
$mailfrom_notify_spamadmin = "spamalert\@$mydomain"; # notifications sender

# $myhostname = 'host.example.com';  # must be a fully-qualified domain name!
->
$myhostname = 'server.imackume.kumecchi.net';  # must be a fully-qualified domain name!

# $notify_method  = 'smtp:[127.0.0.1]:10025';
# $forward_method = 'smtp:[127.0.0.1]:10025';  # set to undef with milter!
->
$notify_method  = 'smtp:[127.0.0.1]:10025';
$forward_method = 'smtp:[127.0.0.1]:10025';  # set to undef with milter!

# $final_virus_destiny      = D_DISCARD;
# $final_banned_destiny     = D_BOUNCE;
# $final_spam_destiny       = D_BOUNCE;
# $final_bad_header_destiny = D_PASS;
->
$final_virus_destiny      = D_BOUNCE;
$final_banned_destiny     = D_BOUNCE;
$final_spam_destiny       = D_PASS;
$final_bad_header_destiny = D_PASS;

# ### http://www.clamav.net/
# ['ClamAV-clamd',
#   \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd"],
#   qr/\bOK$/, qr/\bFOUND$/,
#   qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
->
# ### http://www.clamav.net/
['ClamAV-clamd',
  \&ask_daemon, ["CONTSCAN {}\n", "/var/amavis/clamd.socket"],
  qr/\bOK$/, qr/\bFOUND$/,
  qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],

# ['Mail::ClamAV', \&ask_clamav, "*", [0], [1], qr/^INFECTED: (.+)/],
->
['Mail::ClamAV', \&ask_clamav, "*", [0], [1], qr/^INFECTED: (.+)/],

どう探すか、は、とりあえず置いといて...
  curl -O http://www.ijs.si/software/amavisd/amavisd-new-<version>.tar.gz
  tar zxvf amavisd-new-<version>.tar.gz
  cd amavisd-new-<version>

まずは、ひたすらコピーしてしまう。
cp -p amavisd /usr/local/bin/
cp -p amavisd-agent /usr/local/bin/
cp -p amavisd-nanny /usr/local/bin/
chown root /usr/local/bin/amavisd*
chmod 755 /usr/local/bin/amavisd*

cp -p amavisd.conf /etc/
chown root:amavisd /etc/amavisd.conf
chmod 640 /etc/amavisd.conf

次は、amavisd.confの書き換え。慎重に、地道に。

バージョンのチェック。
cd /usr/bin/
dir file
-rwxr-xr-x   1 root  wheel  - 122168  5 15  2007 file

./file -v
file-4.10
magic file from /usr/share/file/magic


ふむ。これを4.23に上げる。

curl -O ftp://ftp.fu-berlin.de/unix/tools/file/file-4.23.tar.gz
tar zxvf file-4.23.tar.gz
cd file-4.23
./configure
make
make check
make install

比較的すんなり進む。で、ついでに...

cd /usr/bin/
mv file file_4_10
ln -s /usr/local/bin/file file

シンボリックリンクしたりして。

clamd.confとfreshclam.confの記述に合わせて、ログファイル、ディレクトリを作成。
できたら、rehashしてfreshcalmを動かしてみる。データベースがアップデートされれば一安心。
失敗したら...大抵の場合は、configファイルの見直し。


========== ========== ========== ========== ==========
    make log files
========== ========== ========== ========== ==========
touch /var/log/amavis.log
chown amavisd /var/log/amavis.log

touch /var/log/clamd.log
touch /var/log/freshclam.log
chown clamav /var/log/clamd.log /var/log/freshclam.log


========== ========== ========== ========== ==========
    make directory
========== ========== ========== ========== ==========
mkdir /var/amavis
mkdir /var/amavis/tmp
mkdir /var/amavis/var /var/amavis/db
chown -R amavisd:amavisd /var/amavis
chmod 770 /var/amavis

mkdir /var/clamav
chown clamav:clamav /var/clamav
chmod 770 /var/clamav

mkdir /var/virusmails
chown amavisd:amavisd /var/virusmails
chmod 770 /var/virusmails


========== ========== ========== ========== ==========
    update database
========== ========== ========== ========== ==========
rehash
freshclam

面倒なのは、configファイルの設定。地道に確実に。
コメントを外したり、入力したり...

========== ========== ========== ========== ==========
    cd /etc/ ; vi clamd.conf
========== ========== ========== ========== ==========
# Comment or remove the line below.
Example
->
# Example

#LogFile /tmp/clamd.log
->
LogFile /tmp/clamd.log

LogFileMaxSize 0
->
#LogFileMaxSize 0

#LogTime yes
->
LogTime yes

#PidFile /var/run/clamd.pid
->
PidFile /var/amavis/clamd.pid

#DatabaseDirectory /var/lib/clamav
->
DatabaseDirectory /var/clamav

LocalSocket /tmp/clamd.socket
->
LocalSocket /var/amavis/clamd.socket

#FixStaleSocket yes
->
FixStaleSocket yes

#User clamav
->
User clamav

#AllowSupplementaryGroups no
->
AllowSupplementaryGroups yes

#Foreground yes
->
Foreground yes

#DetectPUA yes
->
DetectPUA yes

#ScanArchive yes
->
ScanArchive no


========== ========== ========== ========== ==========
    vi freshclam.conf
========== ========== ========== ========== ==========
# Comment or remove the line below.
Example
->
# Example

#DatabaseDirectory /var/lib/clamav
->
DatabaseDirectory /var/clamav

#UpdateLogFile /var/log/freshclam.log
->
UpdateLogFile /var/log/freshclam.log

#LogVerbose yes
->
LogVerbose yes

#PidFile /var/run/freshclam.pid
->
PidFile /var/amavis/freshclam.pid

#DatabaseOwner clamav
->
DatabaseOwner clamav

#AllowSupplementaryGroups yes
->
AllowSupplementaryGroups yes

#DNSDatabaseInfo current.cvd.clamav.net
->
DNSDatabaseInfo current.cvd.clamav.net

#ScriptedUpdates yes
->
ScriptedUpdates yes

#NotifyClamd /path/to/clamd.conf
->
NotifyClamd /etc/clamd.conf

#Foreground yes
->
Foreground yes


まぁ、幸い、なんということもない。

========== ========== ========== ========== ==========
    config & make for Intel Mac
========== ========== ========== ========== ==========
cd clamav-0.92.1/
sh
export CFLAGS='-arch i686'
export LDFLAGS='-arch i686'
./configure --prefix=/usr/local/clamXav --build=i686-apple-darwin`uname -r`
make
make check
make install


========== ========== ========== ========== ==========
    ..... Power Mac
========== ========== ========== ========== ==========
sh
export CFLAGS='-g'
./configure --prefix=/usr/local/clamXav
make
make check
make install


========== ========== ========== ========== ==========
    copy lib etc...必要ないかも
========== ========== ========== ========== ==========
cp -p /usr/local/clamXav/include/clamav.h /usr/local/include/
cp -p /usr/local/clamXav/lib/* /usr/local/lib/
cp -p /usr/local/clamXav/lib/pkgconfig/* /usr/local/lib/pkgconfig/


========== ========== ========== ========== ==========
    make symbolic link
========== ========== ========== ========== ==========
cd /usr/local/bin
ln -s /usr/local/clamXav/bin/* .
cd /usr/local/sbin/
ln -s /usr/local/clamXav/sbin/* .


========== ========== ========== ========== ==========
    make symbolic link ... clamd.conf and freshclam.conf
========== ========== ========== ========== ==========
cd /etc/
ln -s /usr/local/clamXav/etc/clamd.conf .
ln -s /usr/local/clamXav/etc/freshclam.conf .


あっけなく終わる。

作業してくれるユーザとそれらが所属するグループを用意しなければならない。
TigerまではNetInfoが利用できるので...さらに、Tigerでは、あらかじめ必要なuserとgroupが用意されていたりする。

nidump passwd / | grep ama
->
clamav:*:82:82::0:0:Clamav User:/var/clamav:/bin/tcsh
amavisd:*:83:83::0:0:Amavisd User:/var/virusmails:/bin/tcsh

nidump group / | grep ama
->
clamav:*:82:
amavisd:*:83:

groupをいじくる。NetInfoはコピー&ペーストが思いのまま...時々妙なところにコピーしてしまうけど...なので、adminあたりからusersプロパティをコピーしてきて、clamavとamavisdのそれぞれにペースト、お互いをグループに追加してしまう。

nidump group / | grep ama
->
clamav:*:82:clamav,amavisd
amavisd:*:83:amavisd,clamav

といった感じ。



Pantherの場合はちと面倒。
まず、groupから準備。appserverusrを複製してしまう。

clamavは、次のように入れ替えちまう。

realname    SPAM Assassin Group 1
name    clamav
generateduid    ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000052
smb_sid    S-1-5-21-183
passwd    *
gid    82

できたclamavをさらに複製して、amavisdを作っちゃえ。

realname    SPAM Assassin Group 2
name    amavisd
generateduid    ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000053
smb_sid    S-1-5-21-183
passwd    *
gid    83


続いて、userを作成。
appserverを複製しまおう。
clamavについては、次のように入れ替える。

passwd    *
uid    82
expire    0
home    /var/clamav
gid    82
shell    /bin/tcsh
name    clamav
realname    Clamav User
change    0
_writers_passwd    clamav

できたclamvをさらに複製して、amavisdを作る。

passwd    *
uid    83
expire    0
home    /var/virusmails
gid    83
shell    /bin/tcsh
name    amavisd
realname    Amavisd User
change    0
_writers_passwd    amavisd


何でも、BerkeleyDBが必要らしい...ふーん、Oracleなのね。

サーバどもに応じて、適宜、configureを変えなければならないようだ。

========== ========== ========== ========== ==========
    Intel Mac ... Leopard
sh
cd build_unix/
export CFLAGS='-arch i686 -no-cpp-precomp -Os'
export LDFLAGS='-arch i686 -force_flat_namespace -bind_at_load'
../dist/configure --disable-java
make
make install

========== ========== ========== ========== ==========
    PPC Mac
sh
cd build_unix/
export CFLAGS='-arch ppc -no-cpp-precomp -Os'
export LDFLAGS='-arch ppc -force_flat_namespace -bind_at_load'
../dist/configure --disable-java
make
make install


makeの後で、testもcheckもなしにinstallというのは、ちと、怖い。


次は、Perl用にBerkeleyDB.pmの導入。
cd ./perl/BerkeleyDB
chmod u+w config.in
と、ここまでは良いのだが、config.in内のLIBとINCLUDEが変なんだな。
vi config.in
で、次のように書き換えないといけない。

INCLUDE = ./libraries/4.5.20/include
->
INCLUDE = /usr/local/BerkeleyDB.4.6/include

LIB     = ./libraries/4.5.20/lib
->
LIB     = /usr/local/BerkeleyDB.4.6/lib

後は、普通の手順でござる。

perl Makefile.PL
make
make test
make install

で、無事に導入できましたっ


BerkeleyDBは、/usr/local/に導入されるのだから、

cd /usr/local/
ln -s BerkeleyDB.4.6 BerkeleyDB

なんてことをしておくと、後のCPANを利用する時に便利、かも...不明。


とりあえず、必要な部品をMacPortsで整えた。
あたしの周りのサーバたちは、PantherありTigerありLeopardあり、なので、
MacPorts-1.6.0-10.4-Tiger.dmg
MacPorts-1.6.0-10.5-Leopard.dmg
MacPorts-1.6.0-10.3-Panther.dmg
をダウンロード。
README等を読むと、/opt/local/に導入されるらしい。.tcshrcにpathまで追加してくれる。
気に入らない。
イリーガルだが、全て、/usr/local/に移動させ、
ln -s usr opt
とシンボリックリンクしてしまった。ま、不具合が出たらそれまで。

具体的に導入した部品どもは、以下の通り。
実際には、テキストファイルを作って実行権を与えてTerminal.appから実行させた。


#!/bin/sh
port install bzip2
port install curl
port install expat
port install freetype
port install gettext
port install gmp
port install jasper
port install jpeg
port install lcms
port install lha
port install libiconv
port install libident
port install libmcrypt
port install libpng
port install libtool
port install libxml
port install libxml2
port install ncurses
port install ncursesw
port install nkf
port install pkgconfig
port install sablotron
port install t1lib
port install tiff
port install vim
port install zip
port install zlib

を組み合わせて、なんとなく、以前の感じに近いページになったかも。
MT4では、リッチテキストで編集できるので、それなりに公開イメージがつかめる。

それにしても、システムテンプレートが複数できたり、単純には移行できなかった。
このシステムテンプレートに関しては、既に解決策があるようで...
http://www.materializing.net/archives/2008/03/20094126.php

なるほど、MySQLをいじくるのね。
自宅サーバーではテキストファイルにエクスポートし、データベースを初期の状態に戻してから、改めてインポートすることで不整合を取り除いたが、職場サーバーではそうすることもできず、困っていた。
phpMyAdminでデータベースを覗くと、システムテンプレートが1つのブログに複数存在している場合があった。
template_typeにおいて、search_results、popup_image、comment_preview等を検索する。
複数存在しているレコードを注意深く見て...日本語の文字列は文字化けしていて頼りにできない...テンプレートの中身を新しいものからコピーして入れ替える。
不必要な、複数存在しているレコードは適宜削除して1つだけ残す。
各レコードのtemplate_rebuild_meの値を0から1に代える。
こんな作業で、とりあえず、整合性は戻ったようだ。

MT4を導入したら、いろいろと目茶苦茶になっちまった。
結局、やり直している。
なんだか、なぁ〜

たぶん、データをテキストファイルに書き出して、新しいデータベースに読み込んだ方が確実だな、こりゃあ。


職場と学会のページもおんなじ事になるぜ、参った。

生きています。

Movable Type 4.1を導入したら、とんでもないことになってしまった。
トップページが目茶苦茶だ...いや、全てのページが目茶苦茶だ...
う〜
へたにソースコードがわかってしまったので、ごちゃごちゃとテンプレートなんぞをいじくりまわし、かっちりと作ってしまったから、なぁ〜
...何だか、blog.cssの横幅のpx値の合計と表示が合っていないように思う...Macintoshだからか...違った...あたしが見ているウィンドウが小さかっただけね、はいはい。

自宅サーバーは、PowerMac G4 CubeからMacmini*へ、気まぐれにMac OS X Server 10.5、さらに気まぐれにPerlは5.10.0。
アンチウィルス、スパムメール対策にはClamAV、いずれも、職場サーバーに導入する前の練習**。
職場Webサイト、学会サイトも更新、MTにしてしまった。
電子シラバスシステムのデータベースも更新...てこずった。
毎日、ログファイルとの格闘、で、酒浸り。

更新できなかったこの間...うーん、3ヶ月近くなるか...アルコール依存症になったり、ニコチン依存がひどくなったり、サーバーどもにやられたり、論文指導にやられたり、単位くれとせがまれたり、金がなかったり、なかなか凄かった。
今でも凄いが...

そう、そして、もう、新しい年度が始まってしまった。

----------
* Intel Core 2 Duo, 2GB 677Mhz DDR2 SDRAM
** もちろん、職場公式サイトの前には研究室サーバーで練習。これが、また、同時期に入れた同じ機械の筈なのに「個性」があったりして...微妙に導入されている部品どもが違っていたりする...もちろん、あたしの気まぐれで、入れ忘れただけだったのだろうけど...揃えるのに一苦労。CPANは同じモジュールを何度も導入しようとするし、まったく...

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