2008年

父のそば丑三時に目が覚めるい往たるかほ見しばし眠れず
次々と昔のことを思ひ出し悔恨に吾押し潰さるる
明け方に通夜堂抜けて逃げ去りてホテルの部屋で一人かもねむ
絶え間なくマナーモードのケータイが痛む頭に責め込みにけり
気がつけば12時間が経過して式終はりたり情けなき吾

...ほんと、情けない...

入退院繰り返しつつ生き延びる父に呆れつ祝ひ酒呑む
ただじっと服薬もせず一日を過ごす父親企図せざりしか
脳内の伝達物質出にくい母遺伝なりしか吾もまた同じ
入浴も片付けもせず一日を暮らす父なり吾に似てゐる
悲しみは酒も煙草も消しはせずただいたずらに層なす痛み

なんだろ、ねぇ。
いつも通りのアップデート、と、タカをくくっていた。

手順は、まず、自宅マシンでアップデート、研究室サーバでアップデート、そして、職場公式サーバ等でのアップデート、と、進めるつもりだった。
自宅サーバMacmini Leopard Serverでは、うまくできた、の、が、そもそも、誤解の始まり、だ、な。
自宅Pantherマシン、そして、自宅Tigerマシンでは、makeすらできない。
いや、よくよく見ると、configureの段階で、

========== ========== ========== ========== ==========
checking for a supported version of gcc... ok (4.0.1)
checking for gcc bug PR27603... ok, bug not present
checking for gcc bug PR26763-2... ok, bug not present
checking for valid code generation of CLI_ISCONTAINED... ok, bug not present
checking for gcc bug PR28045... configure: error: your compiler has gcc PR28045 bug, use a different compiler, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28045
========== ========== ========== ========== ==========

と、出てきやがった。
このあたりには、
gcc_select mp-gcc43
や、
gcc_select gcc431
で、対応可能だろう。ついでに、
port -d install apple-gcc42
なんて、後から考えると、無駄なこともしてみたりして。

さらによく見ると、
========== ========== ========== ========== ==========
checking for CHECK... no
configure: WARNING: unable to find 'check' using pkg-config:
No package 'check' found
Alternatively, you may set the environment variables CHECK_CFLAGS
and CHECK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
========== ========== ========== ========== ==========

なんだ、これ。
そうそう、Leopard Serverでも、
make check
するとエラーが出てきたのだな。
これに対しては、
port install check

と、モジュールを追加して解決。

従って、
1.port install check
2.gcc_select gcc431
3../configure --prefix=/usr/local/clamXav
4.make ; make check
5.make install

で、Leopard Serverは、解決!

問題は、PantherとTigerだ。
makeでエラーが出てしまう。

========== ========== ========== ========== ==========
/usr/bin/ld: warning can't open dynamic library: /usr/local/clamXav/lib/libclamunrar.5.dylib referenced from: ../libclamunrar_iface/.libs/libclamunrar_iface.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
/usr/bin/ld: Undefined symbols:
_ppm_constructor referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.5.dylib
_ppm_destructor referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.5.dylib
_rar_init_filters referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.5.dylib
_rar_unpack referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.5.dylib
_rarvm_free referenced from libclamunrar expected to be defined in /usr/local/clamXav/lib/libclamunrar.5.dylib
collect2: ld returned 1 exit status
gmake[4]: *** [libclamav.la] エラー 1
gmake[4]: ディレクトリ `/private/tmp/clamav-0.94/libclamav' から出ます
gmake[3]: *** [all-recursive] エラー 1
gmake[3]: ディレクトリ `/private/tmp/clamav-0.94/libclamav' から出ます
gmake[2]: *** [all] エラー 2
gmake[2]: ディレクトリ `/private/tmp/clamav-0.94/libclamav' から出ます
gmake[1]: *** [all-recursive] エラー 1
gmake[1]: ディレクトリ `/private/tmp/clamav-0.94' から出ます
gmake: *** [all] エラー 2
========== ========== ========== ========== ==========

どう考えても、変だ。
ライブラリーの場所を間違えている。
あたしは指定していないのだけど...いや、正確には、
./configure --prefix=/usr/local/clamXav
と、指定してはいるね。

困った。
9/20からの週末、9/23の休日を潰して、試行錯誤。
始めからググっていれば良かったのだろうが、幸い、次の記事を見つける。
そう言えば、アンインストールしてからインストールしろ、と、READMEに書いてあったような気がする、が、これまでは、単純なオーバーライト・インストールでうまくできていたので...ライブラリーがなくて困った時があったが...

http://www.markallan.co.uk/BB/viewtopic.php?p=7070&highlight=#7070


従って、だ。

1.checkのインストールが先、これは変わらず。
port install check

2.gccはバグ無しを選択、これも変わらず。
gcc_select mp-gcc43
gcc_select gcc431

ちなみに、gcc (GCC) 4.1.2でも良かった。

3.古いファイルどもを消す!*
のは、怖いので、
cd /usr/local
mv clamXav clamXav_0.93.3
mkdir clamXav

4.configure、make
(1)Intel Mac
./configure --prefix=/usr/local/clamXav --build=i686-apple-darwin`uname -r`
gmake
gmake check
gmake install
...今回は、gmakeを使った。

(2)Power Mac
./configure CFLAGS='-g' --prefix=/usr/local/clamXav
↓どうやら、CFLAGSの指定は不要みたいだな。
./configure --prefix=/usr/local/clamXav
gmake
gmake check
gmake install


ただしっ
gmake check
の実行時、
========== ========== ========== ========== ==========
gmake[2]: `check_freshclam.sh' に対して行うべき事はありません.
gmake[2]: `check_sigtool.sh' に対して行うべき事はありません.
gmake[2]: `check_clamscan.sh' に対して行うべき事はありません.
gmake[2]: `valgrind_tests.sh' に対して行うべき事はありません.
gmake[2]: ディレクトリ `/private/tmp/clamav-0.94/unit_tests' から出ます
gmake  check-TESTS
gmake[2]: ディレクトリ `/private/tmp/clamav-0.94/unit_tests' に入ります
Running suite(s): cl_api
 cli
 jsnorm
 str
 regex
 disasm
 unique
 matchers
100%: Checks: 205, Failures: 0, Errors: 0
PASS: check_clamav
PASS: check_clamd.sh
PASS: check_freshclam.sh
PASS: check_sigtool.sh
PASS: check_clamscan.sh
*** valgrind not found, skipping test
SKIP: valgrind_tests.sh
======================
All 5 tests passed
(1 tests were not run)
======================
gmake[2]: ディレクトリ `/private/tmp/clamav-0.94/unit_tests' から出ます
gmake[1]: ディレクトリ `/private/tmp/clamav-0.94/unit_tests' から出ます
gmake[1]: ディレクトリ `/private/tmp/clamav-0.94' に入ります
gmake[1]: `check-am' に対して行うべき事はありません.
gmake[1]: ディレクトリ `/private/tmp/clamav-0.94' から出ます
========== ========== ========== ========== ==========

と、いう具合に、valgrindに関するメッセージが出てきたけど、今回は、無視。

とりあえず、動いているみたい、だから、さ。

そうそう、configファイル、
/etc/clamd.conf
/etc/freshclam.conf

あたしは、これらに対して、

/usr/local/clamXav/etc/clamd.conf
/usr/local/clamXav/etc/freshclam.conf

をシンボリックリンクして使っている...
つまり、新規導入したようなものだから、改めて、これらを設定することになってしまった。
いくつか、オプションが増えていたので、むしろ、積極的に、再設定すべき、なのだろう、な。

楽しかった。
久しぶりだ。
7月末の、某看護教員研修講座以来。
寝ている受講生を起こしたり、喫煙所でロースクールの院生たちと話しをしたり。
そう、あたしは、やはり、授業が好きなんだな。人と話をするのが、いいのだな。

一時的にお金はかかってしまったが、連れて行った指導生に、ビデオ撮影のお礼として食事をおごった。
1人で酒を飲む、それも、自宅で飲む、のは、全く楽しくない。
いつもの居酒屋で大将が構ってくれればそれなりにいいのだが、カウンターで1人、というの、ダメ、だな、やはり。
私を比較的よく知る人々は、よくカウンターで1人で酒を飲むなぁ、と、驚く。
確かに、とても難しい、の、では、あるが、人と話をする、と言う事が恢復につながる、と担当医も言っていた、の、だ。
積極的に利用しなければならない。

食事中は極力タバコは吸わない。
出てくる料理に集中したいからだ。
タバコで鈍った舌でも、おいしさがわかる。
...前頭葉が判断しているのだろうが。
楽しい。
隣に、指導生がいると、もっと楽しい。
研究の事、授業の事、話題は尽きない。

おかげさまで、極めて規則的な生活ができた。
とはいえ、もちろん、遅刻ギリギリ、ということもありましたっ
そこは、指導生に助けられまして...ありがとうございました。

下通りのダイエー前には、昨年同様、若者が太棹でじょんがら節を叩いていた。
何日目だったか、酔いに任せて、弥三郎節、黒田節、ソーラン節、貝殻節、を歌ってしまった。
地声で歌う訓練は、人前で話をする為の練習にもなる、かも...

楽しい事は続かない。
さて、この疲れはいつ出てくるのだろう。
肉体的な疲れは、既に出てきている。腰が痛い。
いわゆる脳の疲れは、1週間後、かも。
何しろ、興奮している、アドレナリンが全開だ。
セロトニンが代表だが、脳内伝達物質がどうも狂って流れているように思う。
だから、病気、なんだろうな。

東大で講義をした立花隆は、二十歳を過ぎたら自分の脳に責任を持て、と、主張していた。
脳に責任を持つ、と言う事は、脳内伝達物質の分泌も自己責任、ということか...
無茶、だ、な。

頭よりはるかにデカい補虫網振り回されてカナブン一匹
ビルの上赤星ひとつ望月は笠をかぶりて蒸し暑き夜
西日浴び紫煙の先を眺めつつ今日も生きてた不思議を思ふ
自らに対する認知狂ひをり疲れを知らずひたすら眠る
疲れだと前頭葉は認むるも直ぐ義理義務が上書きせしむ
親しげな電子のカード届きたり歳をとこなる咳しつる吾
クマゼミが鳴き終わりたり強烈な西日の中にひそむ秋風

久しぶりに会議で出て行けた。
もちろん、指導生との打合せもあったし、週末の集中講義の準備もあった。
頑張って出て行った、の、だな。
残念ながら、かんちゅーはい、350ccのチカラを借りてしまった。

会議の内容にはついて行けなかった。
ただし、電子シラバスシステムエシラスに対して、大きな誤解が生じている事だけはわかった。

全学に先駆けて、一般公開を行った、先駆的なシステムである。
開発した当時の院生にはかなりの圧力をかけた。
少なくとも、素人を演ずるあたしが納得するような使い勝手を目指したのだ、な。

前にも書いたけれども、全学的なシラバスシステムのひな形に採用されるくらいだ。

会議では、某B学部のが素晴らしい、と、言うことだった。
会議後、指導生と共に、学生の立場から閲覧したが、1つの機能を除いて、全てエシラスに備わっている。
2000年当時に作成されたのだから、当然、後発のシステムの方が優れていて当然だ。
なんとなく、某ビックカメラや某ヨドバシカメラのインターネットショッピングのサイトを見ているような感じがした。
恐らく、それなりのテンプレートがあるのだろうね。

それから、エシラスは自由に書き換えられないから、ダメ、なんだそうだ。
何いってやがる、某教務委員会の要請で、期限付きで入力可能なように、わざわざ、あたしがプログラムを作ったんだぜ。
それに、自由にいつでも教員が書き換えられるようならば、契約書としてのシラバスの意味がない。
つまり、某B学部・学府の教員は、学生・院生と契約するつもりはないのだろう。

果たして、全学のシステムはどうなるのだろうねぇ〜

天神落語会というのがあって、四夜連続で落語をやる。
第二夜が家元と談春だ。
ところが、チケットが取れないのだな。
確か、志の輔がもっともチケットの取りにくい落語家、になっていたはず。
家元もなかなか取れない。
仕方ないので、聴きたくもない四夜通し券を買ってしまった。

声が出ない、という、いつもの第一声から始まった。
しかし、今回は、いつもとは違い...話しているうちに声が出てくるから、と、いくつかジョークをやるのだがほんとに声が出ないのだ。
うーん。
よくぞ来てくださった、という感じである。
そう言えば、生で見るのは久々だ。
イリュージョンの講釈から、イリュージョン版松曳きに入って行った。
枯れた感じで、なかなか良かった。

今度は、いつ、聴けるのだろう。
家元が先か、あたしが先か。

ここの続き。
その後、10吋ノート型コンピュータ用の冷却ファンを見つけた。
冷却ジェルパックを、この冷却ファンに取り換えたところ、CPUの温度が65度台に下がり、一安心。

冷却ファンの上に、100円ショップで購入した15cm角の焼き網を乗せ、先に書いたブックスタンドを置いて、さらにその上に焼き網を乗せる。その上に標記Macminiを置いた。

iMovieで共有作業(メディアブラウザ用の大サイズムービー、45分)をさせると、CPU温度は81度、85度まで上がる。時々、1つのCPUは74度に下がったりするけど。

大腿筋に低温火傷ができそうなMac Book Proだと、同じ作業で2つのCPUとも71度程度。
ただし、ちょっとVNCでアクセスしてWindowServerに負担をかけてやると、2つのCPUとも82度位まで上がる。

こんなもんなのか、ねぇ。

週末から某K本大学での集中講義に出かける事になっている。
教室のAV機器、事務に用意させたOHPとスクリーンが使い物になるかどうか、確認するため、下見に出かけた。それと、資料の原稿を事務に手渡すため。

集中講義のために教室の下見をする大学教員なんて、極めて珍しい、と、思う。
が、元国立大学を始め、私立大学でも、どこも似たようなAV操作卓というのがあって、集中管理できるようになっている、のではあるが、使い方がわかりにくかったり、使われていなかったり、初回の授業前だけの準備だけでは、たいてい間に合わない、否、間に合わなかった。

今年で3回目、である。
博物館学芸員の資格のために必要な授業なのだが、この分野、教育と情報やメディアの事がわかっている人材が少ないらしく、あたしは貴重な人材らしい...誰もそのようには考えていないみたいだけどね。
行ったついでに、博物館や美術館等を見学し、教材研究という名前のあら探しをしてくる。
...県立博物館のティラノザウルスの絵は、未だにゴジラのように直立している。
陳列すれば学習が進む、というような妙な考え方をぶち壊したい、のだ、な。

それはそれとして。
喫煙所がなくなっていた。正確には、少なくなっていた。
講義棟の階段の下に、不要なモノドモと並んで灰皿が置いてあった。
ちなみに、不要なモノドモの中には、重要文化財指定云々と書かれた木材がころがっていた。
あれだけ乾燥していたら、燃えるぜ。

元国立大学では、非常勤講師の控室が用意される事はほとんどない。
実際、あたしの職場では、院生研究室に講師をお招きして休憩していただいている。
昨年は、教室にずっといた。そもそも、控室の事など、事務員の口から出てこなかったし。
なんだろうねぇ。

今回目に付いたのは、藤崎宮である。
タクシーの窓から見た作りが福岡の筥崎宮に似ている。とすると、祭られている神様は、多分、天照大神、伊勢神宮系だろう。
で、喫煙所でたまたま知りあったロースクールの院生に、初詣でにはどこに行くのか、と尋ねてみた。
答えがいい。一緒に行く人によって違う、らしい。
なるほど、ね。
福岡の櫛田神社は、スサノオが祭られている。荒ぶる神だ。だから、半裸の男達が町中を駆け巡るという祭りがあるのだ、と、仮説を立てているのであった。

で、藤崎宮だ。予想通り、伊勢神宮系だった。
おみくじが数種類用意してあった。
血液型別おみくじには、正直、驚いた。
あたしは、七福神おみくじを引いた。
当然、恵比寿が当たると予想。外れた。
布袋だった。いつもニコニコしていろ、ということらしい。
これまでは、人々の笑いをとれ、だったのだけれども、もう、笑いをとる必要はないのだな。

それにしても、向かって右には八幡、左には産土、どちらもご神体であるはずの鏡がむき出しだった。
さすかに、正面の天照大神のご身体は扉の陰になっていたけど、いいのかな。

わずか、半日の旅行だったのだか、疲れてしまった。
久しぶりに、眠剤を飲む前に眠ってしまった。
明日は、筋肉痛でダルダルだろう。
談志を聴きに行けるか...

自宅サーバが、熱い。
MacBook Proの液晶割れたヤツ、MacBook Proの最新機種、共に、大腿部に低温火傷ができるか、というくらい熱くなるのだけれども、Temperature Monitorでモニターすると、CPU温度は、70度からせいぜい78度で、80度を超える事はない。
ところが、この自宅サーバは、常時CPU温度が80度を超え、87度なんてざらなのである。
ついに、再起動できなくなったり、ログアウトできなくなったり。
FireWireの外付けハードディスクを認識しなくなったりもした。

まず、TechToolProを導入する事にした。
それから、B5ノート型コンピュータ用の冷却ジェルパックを買ってきて二つ折りにし、本体下部に敷いてみた。勿論、アルミ缶2つで支えて*、空気の通りをよくしといて。
それでも、80度から84度で推移する。
幸い、FireWireは使えるようになったけど。
二つ折りにしたジェルパックの間には、100円ショップで購入したアルミ製のブックスタンドを挟み込んで放熱させようとしてみたり...このアイディアは、スピリカ作業小屋ブログから拝借。
しかぁ〜し、依然として85度位まで上がる。
ちなみに、ブックスタンドもちゃんと熱くなっている。

ただし、前から気になっていたのは、syslogdの動き。
それと、/var/log/asl.dbの巨大さ。

で、ググってみると、Loepardでは、syslogdが暴走するらしい。
とは言え、職場のマシンどもではそれが起きないのだ、な。
...そのうちに起きるのか...

確かに、
sudo launchctl stop com.apple.syslogd

で、syslogdを止めてしまえば、CPU温度も65度まで下がってしまった。
うーん。
それから、/var/log/asl.dbを削除してみる。
sudo rm -f /var/log/asl.db

改めて、syslogdを起動する、
sudo launchctl start com.apple.syslogd

と、また、CPU使用率が100%になって、CPU温度も急上昇。

めげずに、
sudo launchctl stop com.apple.syslogd
sudo rm -f /var/log/asl.db
sudo launchctl start com.apple.syslogd
を実行すると、今度は大丈夫、syslogdのCPU使用率が下がり、CPU温度も65度で安定。

しばらく、様子見、ですな。

今年2度目の連続飲酒。500mlのちゅーはいを1日に6本飲み続けてしまった。
だるくて一日中寝ているし、時々、嫌な過去を思い出す。
指導生の論文指導の前に1本。とりあえず、家から出て行けるし、それなりのアイディアも出る。
文章の論理的矛盾も指摘できる。
しかし、よく転ぶ。
当たり前だ、自覚していないだけで、酔っぱらっているのだから。

8/21、木曜日、通院の日。
とうとう、アルコール依存専門医に行け、と指令された。
翌日、22日に某雁の巣病院に行く事にした、の、だが、起きる事ができなかった。
木曜日に調子こいて60通ほど、学生たちにメールを書いていて、いつの間にか、23時になっていた。
土曜日、23日の午前中に、通院再挑戦。
が、やはり、気がつくと昼を過ぎていた。
幸い、断酒は続いている。

暴れない理性が残っているうちに、通院できる事を祈るのみ。

酒を飲まないと、煙草が増える。酒を飲んでいると、煙草は減る。
酒を飲みながら炭水化物を摂取するので、腹周りが復活した。
げっそり痩せているよりは、「怖く」見えないだろうから、多少はいいのかもしれない。

職場の大学説明会があった。
出し物は、模擬授業である。
遅刻した。
幸い、今年度は、院生が一コマ持ってくれていたので、なんとかなったけど。

高校2年生はまじめに話を聞いてくれる。
納得すれば素直にうなずくし、わからければ首をかしげる。
そうそう、そんな授業を研究しているのだよん。
伝わったかな。

夕方、出入り禁止になっていた近所の居酒屋で...事前に詫びをいれましたっ...打ち上げ。
学生どもは、ソフトドリンクばかり飲んで、それだけで予算オーバー。
困った。

この居酒屋の大将には、毎年、中元を送っている。
今年も送った。
そのお返しが、届いた。
手紙が添えてあった。
ちゃんと、食事ができていないだろうから、と、店で出している野菜の煮物、佃煮、豚の角煮、そして鯛の煮物が入っていた。
しばらく、言葉を失った。
久しぶりに泣いた。
泣きながら、野菜の煮物と鯛の煮物をつついてみた。
塩加減があたし好みだった。
ますます泣けた。

週の半ば、大将を訪ねた。
さすがに、依存症までは見抜いていなかったが、酒量が尋常ではない事から出入り禁止にしてくれたのだった。
正解である。

職場の皆さん、指導生、元指導生、授業の受講生の皆さんや、居酒屋の大将、みんなに迷惑をかけつつ、生きている。
せめて、自殺だけはしないようにしようっと。

ちなみに、説明会の翌日、夜間の社会人院生たちと、もつ鍋研究会の自主研究会を催した。
遅刻した。バスに乗ったのが間違い。
さすがに社会人、携帯電話のナビをたよりに会場に着いていた。
5人で24人分を食した。あたしが奉行だったから、かなりマイルド。
辛いのが苦手ぇ〜、という人が2人居たので。
それから、これまでモツは大嫌い、だった人が、こんなおいしいとは思わなかった、と言っていた。
概念崩しが成功。

予想通り、その後、二日ほど寝込んだ。

ここしばらく、毎日、ちゅーはい、というヤツを飲んでしまっている。
自信がないのだろうね。
7月最後の週の月・火と、某県看護教員養成講習会で1日6時間ほど話す機会があった。
今年度は、あたしの1人勝負で、普段の授業で使っている教材を用いた。
勿論、看護実践の事例も添えて説明した。
とても反響がよかった、と、自己満足している。

学生から質問されて答えられなかったらどうしたらよいか、等といった、まるで教育実習の事前指導の時に話しているような事柄についても質問された。
そうなんだ、と、3年目で初めて気付いた。
彼らは、教壇に立っている人もいるしこれから立つ人もいるのだった。
まだ、あたしの守備範囲で勝負できるのだな。

疲れたけど、楽しかった。
予想通り、その後、二日ほど寝込んだ。

あっという間に7月が終わってしまう。
学生どもは試験と夏休み、になるのだが、あたしの指導生どもには、毎週木曜を自主勉強会に指定している。
某看護大から2人の学生さんがゲスト。
保健指導のプレゼンをしたい、という。
お二人の指導教員はあたしの弟子、かつ、共同研究者、かつ、ホームナース。
2つの大学で演習を合同で実施する、というのは、面白い試みだと考えている。
で、お二人のテーマが、禁煙とうつ。なんと、まぁ、あたしのためにプレゼンしてくれるようなものだ。
とりあえず、この木曜を楽しみに、後は野となれ山となれ、ひたすら眠い。

WD製の1テラバイトのハードディスクは、何だか知らないが、ファイルを認識できるようになっていた。
サーフェイススキャンも無駄ではなかったのか、も。
認識できるようになったところに、注文していたハードディスクが届いてしまって...
まずは、WD製のMy Bookを利用可能にすること、だ。
壊れたはずのMy BookをまずTechToolProとディスクユーティリティで修復する。
その間、新しいMy Bookをゼロを書き込んで初期化。
そして、dittoコマンドを使って、壊れたはずのMy Bookから新しいMy Bookにファイル転送。
もし、壊れているファイル等があれれば、複写できないはずだ。
幸い、全部複写できた、が、何故か、全てのファイルが.Trashesに入っていた。
mvコマンドで移動させて、壊れたはずのMy Bookをゼロを書き込んで初期化、Time Machine用にするのだな。

購入したハードディスクは、LaCie製の2テラバイト外付けハードディスクもあった。
こちらは、面倒なのでそのままつないで、たこ足FireWire、たこ足USB接続しているこまごまとしたハードディスクからファイルを転送。
LaCie製のハードディスクは、もう2台、Mini HUBタイプ、500GB、を購入していた。
こちらがアメリカから到着。
接続してみると、LEDが点滅...うーん。前の2台と同じか...
気を取り直して付属の電源アダプターで接続してみると、FireWire接続で2台とも認識された。
ただし、MS-DOSフォーマットだった。
このあたりはご愛嬌、と言う事にして、ディスクユーティリティを使い初期化。
FireWireとUSBのHUBが増えるのは有り難い。
恐らく、このMini Hubタイプは、MacMiniに一台だけ接続する事が前提なのだろう、ね。
あたしは、2台重ねて使っちゃってる。
USBのHUBには、WDのMy Bookを2台、LaCieの2テラバイトタイプを一台、さらに、Buffalo製の1ギガハードディスクを1台、つなぎまくりである。
このブログサーバは、裏でIMovieやiDVDが動いている。
さすがに、MacMiniの限界かも、ね。
まさに、耐久テストをしているようなものだ。
頑張れぇ〜

間違えて、USキーボードを指定して購入してしまったMac Book Pro 15吋、のアップルマークに前蹴りを入れてしまった。
見事に、液晶に左上から右下にかけてひびが入ってしまった。
万事休す。
何も仕事ができなくなった。
この文章を書いているのは、中古PowerMac G4 Cube、CPU G4 1.8GHz、DVDドライブ交換、という、時代遅れのマシン。
これを使って、VNCでアクセス、何とかしようと試みた、が、USキーボードは手ごわい。
中古PowrMac G4はPantherで運用していたが、Tigerに入れ替える事にした。
そもそも、日本語に関して、あたしはカナ入力なのである。
USキーボードのひび割れMac Book Proでは、キートップにカナが表示されていない、が、カナ入力なのである。これ、かなりの自慢。わかる人だけわかるだろうな。
VNCでは、さすがにカナ入力はできず、ローマ字入力にしないといけなかった。
Tigerに変えたのは、カナ入力できるかも、と、期待したからだった。
ダメね。
メールのやり取りが途絶えてしまい、何とかしようと思うのだが、2テラバイトの消失からどうにも身動きができなくなった。
何通も同じ内容のメールを送ってくださる方々、ごめんなさい。

ひび割れMac Book Proの代替機として、JISキーボード配列のMac Book Pro 15吋を衝動買い。
幸い、3日で届いた。
新Mac Book ProはLoepard、ひび割れMac Book ProはTiger、ではあるが、システム情報等はうまく転送されたようだ。
ただし、/uer/local/bin/や/etc/の設定ファイルはいちから作り直し。
ソフトウェアアップデートも何やらうまく起動しなかったりして、困る。

MacPortsやperl 5.10.0等を導入しながら、寝てしまったりして。
何をしていたのかよくわからないまま、寝たり起きたり作業したり...

さて、7/28、29は、県の看護教員養成講習会。
徹夜、だな、寝込んだら遅刻してしまう。

止まりつつ素直に流るるメッセージ達成感ぞmakeされける
PPの小さな文字に意見する誰であろうと怖いもの無し
プレゼンで読めない文字は密やかに見せたくないといふことなりや
早々とうつとの共存選択す闘う気力とうに失せたり
だらだらとその日に思ふことをする生きる目的すら探せずに
父母や妹すらも思えずば天涯孤独といふ傲慢
酒無しで何もできない事ばかり認知の狂ひ自覚せるなり
狂ひたる認知が故の怖いもの無し自滅するのは嫌ひなれども
企図せども死体の始末考へる一筋残る知識構造
約束を違へてもなほ付いてくる指導生のみ心残りなる

理事を務めている学会があった。指導生どもが発表する、ので、援護射撃(会場で睨みを利かせる)をするはず、が、集合時刻に起きてしまったり、して、かろうじて、発表の最後に間に合ったり、討論に間に合ったり、散々。
一応、それなりに援護射撃はした、と、思っている。思わないとやってられない。
手前みそだが、2人の発表はなかなかよかった、と、思っている。
いやいや、上出来だ。なにしろ、あたしなんぞ、学会デビューは、助手になってから、だったからな。
今から考えると、論文の書き方、なんてことは、教えられたことはなかった。
あたしは、ここ数年、自分から文章を創り出すことは極めて困難な状態。しかし、書かれている文章の矛盾をつくことは、幸いできる。
従って、あたしの目をくぐった予稿集、論文、には、細かなケチはつかない。
こう考えられないか、このような場合には適応可能か、といった、建設的なやり取りが行われる。
もちろん、こう考えられないか、には、大抵、あたしが見逃していた論理の穴が指摘されていることがほとんどだから、あたし自身、勉強になる。

で、疲れた。3日ほど、寝込んだ。
その勢いで、結局、6月末は寝て過ごしてしまった。

カレンダーは5月のままなのに、もう、7月になってしまった。
7月3日、木曜日は、通院の日。
久々に、担当医の顔を見た、というのも、起きたら診療時刻が過ぎていた、という事ばかり重ねて、どうにもならなかったからだ。
健康でないと、医者には行けない。
通院できなければ、当然、SSRIパキシルが無くなる。他の安定剤や眠剤は飲んだり飲まなかったりしていたので余っている。
パキシル服用停止による副作用はすさまじい。
3日位すると、耳鳴りがする。頭痛も伴う。鎮痛薬は役に立たない。何しろ、機序が違うのだから。
最悪なのは、電気ショック様感覚異常である。笑っても、首をひねっても、もちろん、歩く度にその部位から脳天に向かって電気ショックが走る。
呆れた担当医が言っていた、このパキシル服用停止による副作用に耐えた最長記録だ、と。
来るとわかっていると、それなりに備えるのであるし、感覚異常であるとわかっているからそれなりに我慢もできる。
ひたすら、寝て過ごす。そして、通院の日を逃す。
逃してどうにもならなくなって、担当医ではない医者から処方せんをもらってとりあえずパキシルを入手、そんなこんなで、久しぶりのご対面、と言うことになった訳だ。

7月3日は、会議が午前中ある、と、思い込んでいて、早めに通院し会議に駆けつけるつもりでいた。のだが、起きたら10時を過ぎていて、会議が始まっている時刻になっていた。
よくよく開催通知を読むと、13時30分開始だった。
お間抜けである。
ゆっくり通院し、13時からの授業は形式的には休講にしなかった。
発表者の意図を根底から崩して、会議に出かけた。
その会議は、情報に関係する委員会で、こちらに赴任してからずぅ〜っと、委員を続けている。
久々に、暴れた。
そもそも、資料が「虫食い古文書」状態。PDFリテラシーがない誰かが用意したのだろう。
こんな資料で会議ができるか、我々に失礼だろう、と、怒鳴った。
思えば、最初の職場では資料を揃える側だった。その時の敵討ち、しても仕方ないけど。
それと、委員長に噛みついた。
資料に合わせて、同じものをPPで提示している。当然、文字なんて読めない。
それは、読むなと言っていることと同じだ、と、怒鳴った。
いい加減にしてくれぃ。

会議の最後に、700台のコンピュータのリプレースの方針が伝えられた。
話していた室長は、爆弾だ、と、形容したのは、プリンターの問題だった。
何でも、タダだから、ということで、資料をコピーする代わりに印刷させている教員がいるということだった。なぁ〜に、考えてんだか。
自分の首を絞めるようなことになるのに。
で、コンビニのコピー機と同様、1枚印刷するのに10円が必要になる、ということだった。
大賛成である。
ぜひ、実行してください、と、発言した。

むしろ、700台のコンピュータの基本ソフトウェアの選択の方が爆弾だと思ったのはあたしだけだったようだ。
Mac OS Xを採用する予定だという。
UNIXだから、と、管理しやすい、のが、選択基準だったようだ。
そうそう、管理しやすいのだ。

さて、会議が終わって、ほっとしていたら、資料をぶちまけてしまった。
揃えるつもりが、上と下だけが残って、中が机のしたにバサバサ落ちちまう。
お間抜けである。
アベアベしていると、先ほどの室長が、名刺交換を...なんで?
某学部が捨てた電子シラバスシステムエシラスをひな形に、全学的なシラバスシステムを作成したい、と言うことだった。
いわく、あなたが創った(正確には、あーしろ、こーしろ、と、思想を院生に伝えただけだったけど)シラバスシステムは、何でもできる、と...
何でもなんてできないよん。
どうやら、学部を超えて検索したいらしい。
確かに、そんなことはへのかっぱである。
うーん、見る人が見ると、わかってもらえるものだ、な。
某学部はどうすんだろうね。
全学のシラバスシステムを利用します、と、決めたようだが、使ってみたら、前と同じ、になるのだから。

さて、会議が終わって、また、3日ほど寝込んだ。
暴れすぎだ。

それと、1TBの外付けハードディスクを同時に2台、壊したことも、かなり来ている。
その前に、500MBの外付けハードディスク(LaCie製)を同時に2台、壊している。
3TBのデータが一瞬で消えてしまった。
正確には、500MBのハードディスク2台を壊した時点で、1TBのハードディスク(WD製)を購入、一応復帰された。
LoepardのTime Machine機能を使ってバックアップしていたつもり、なのだけれども、それも消えてしまった。パーティションを切ってTime Machine機能を使うとダメかも。
もう1台の1TBハードディスク(LaCie製)は、ネットワークで共有するタイプ。
これが、いつの間にか、マウントできなくなって...回転音に異音が混じっている。
はぁ、このハードディスクは、どうやって初期化するのだっけな。
ちなみに、Time Machine機能を使ってバックアップしていた1TBのハードディスクは、ブレーカーが落ちてから2度と動かなくなった。
洗濯しながら電子レンジを使ってはいけないのだった。
初期化できないので、TechToolPro4で表面検査をされているが、10日経ってやっと2割ほどの領域が済んだところ。約20億のブロックを検査し終わるまで、コンピュータが使えない。

先に500MBのハードディスク2台を某カメラ量販店に持って行ったところ、買った方がいいと修理を断られた。
で、悔しいから、WD製の同じ1TBハードディスク、LaCie製の同じ500MBハードディスク...これは日本では入手できそうになかったので、アメリカから購入、さらにLaCieのサイトにあるショップから2TBのハードディスクを購入することにした。

今、手元にあるハードディスクを取っ換え引っ換え常時8台程接続して使っている。
ギガ単位のハードディスクでまとめればすっきりするはず。
今回は、もったいないけど、1台のハードディスクをTime Machine用に使うことにする。

寝よ。

悲しくなった、一因には、これもあったかもしれない。

職場Webサーバの改定を促進するため、あるプログラムを創っていた。Perlで書いた。
まず、自宅サーバに導入、関係委員にテストをしてもらった。
うまく動いたので、公式サーバでテストをしたのだが、うまく動かない。

厳密に考えれば、自宅サーバはLeopard、公式サーバはPanther、Perlは共に5.10.0。
違うといえば違うし、同じといえば同じ、だ。
で、ハマる。

Leopardのgccは4.0.1、Pantherのそれは3.3だ。
この違いか、と、思ってしまったのだな。
で、gccの導入に週末を潰した。
結局、ここに書いたように、原因はあたしの勘違いにあったのだけれども、悔しいので、記事にしちまう。


1.gcc-4.0.1 on Panther
まず、portで必要な部品を導入。
port install gmp
port install mpfr
port install autogen

環境変数をセット。
setenv LD "/usr/bin/ld"
setenv CC "/usr/local/bin/gcc"

gccは、元々導入されている3.3を使うことにした。
gcc_select gcc33

で、だ。この、gcc_select、portで導入したのだが、妙なファイルを作ってくれる。
選択するgccの関連ファイルを
/usr/local/etc/select/gcc/
に1つずつファイルとして保存しているのだが、この中の、gcc33の中身が、
/usr/bin/gcc-3.3
/usr/bin/cpp-3.3
/usr/bin/c++-3.3
/usr/bin/bin/g++-3.3
-
/usr/bin/gcov-3.3
-

となっているのだな。Leopardは元々gcc4.0.1だ。その場合も、
/usr/bin/gcc-4.0
/usr/bin/cpp-4.0
/usr/bin/c++-4.0
/usr/bin/bin/g++-4.0
-
/usr/bin/gcov-4.0
-

と記述されている。
/usr/bin/bin/g++-3.3

/usr/bin/bin/g++-4.0
も、存在してないよぉ〜ん。
誰も不具合を指摘しないのかな。
切り替えてしまえば、元々導入していたgccは利用しないのかも、ね。特に、g++は...
気持ち悪いので、手動で編集し直しておいた。
それはそれとして、gcc-4.0.1、ね。
以下の作業は、
http://wistaria.ap.t.u-tokyo.ac.jp/Members/wistaria/log/gcc-4.3

を参考にさせていただいた。

適当なサブディレクトリに移動して、
curl -O http://ftp.gnu.org/gnu/gcc/gcc-4.0.1/gcc-4.0.1.tar.bz2
mkdir gcc-4.0.1-build ; cd gcc-4.0.1-build
tar jxf gcc-4.0.1.tar.bz2
mkdir gcc-4.0.1-build ; cd gcc-4.0.1-build
../gcc-4.0.1/configure --prefix=/usr/local/gcc-4.3.1


The following languages will be built: c,c++,fortran,java,objc
*** This configuration is not supported in the following subdirectories:
     target-libmudflap target-libada gnattools
    (Any other directories should still work fine.)
なんて表示されるけど、多分、使わないので、無視。

gmake -j4
gmake check

この時、autogenが活躍するのだけど、
*** 12,18 ****
  #if defined( X11_NEW_CHECK )
  struct wedge {
  #ifdef __cplusplus
! Widget        old, c_new;
  #else
     Widget     old, new; /* fixinc check FAILS ON BSD */
  #endif
--- 12,18 ----
  #if defined( X11_NEW_CHECK )
  struct wedge {
  #ifdef __cplusplus
!       Widget  old, c_new;
  #else
     Widget     old, new; /* fixinc check FAILS ON BSD */
  #endif

といったような、ホワイトスペースに関係する違いを指摘してくれる。
ご苦労さん。
気にしないで...勿論、単なるホワイトスペースの違いだとチェックはした...

gmake install

後は、gcc_select用のファイルを用意する。
cd /usr/local/etc/select/gcc/
vi gcc401

/usr/local/gcc-4.0.1/bin/gcc
/usr/local/gcc-4.0.1/bin/cpp
/usr/local/gcc-4.0.1/bin/c++
/usr/local/gcc-4.0.1/bin/g++
/usr/local/gcc-4.0.1/bin/gcj
/usr/local/gcc-4.0.1/bin/gcov
/usr/local/gcc-4.0.1/bin/gfortran

こんな感じ。


2.gcc-4.3.1 on Panther
前項で用意したので、は、あるが、念のため。手順としては、
port install gmp
port install mpfr
port install autogen

と、部品を用意。
環境変数をセット、
setenv LD "/usr/bin/ld"
setenv CC "/usr/local/bin/gcc"

しといて...この場合のgccは、4.0.1を使ってみた。
cd /tmp/
curl -O http://ftp.gnu.org/gnu/gcc/gcc-4.3.1/gcc-4.3.1.tar.bz2
tar jxf gcc-4.3.1.tar.bz2

mkdir gcc-4.3.1-build ; cd gcc-4.3.1-build
../gcc-4.3.1/configure --prefix=/usr/local/gcc-4.3.1

やはり、
The following languages will be built: c,c++,fortran,java,objc
*** This configuration is not supported in the following subdirectories:
     target-libmudflap target-libada gnattools
    (Any other directories should still work fine.)

と表示される。無視。

make -j4 bootstrap
を実行したら、
checking assembler for .machine directive support... no
*** This target requires an assembler supporting ".machine"
you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg
make: *** [configure-gcc] Error 1
と、表示されて止まってしまった。
実は、4.0.1の導入を先に書いたのだけれども、作業時間は4.3.1の導入が先だった。
だから、前項の通りに進めても、うまくできないかも。

さて、
ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg
は、存在していなかった。

http://gcc.gnu.org/install/specific.html#powerpc-x-darwin
http://gcc.gnu.org/ml/gcc/2006-03/msg00507.html

を探って、
ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-590.36.dmg

を見つける。
ちなみに、自宅の実験機、元自宅サーバPowerMac Cubeには、Xcode 1.5が導入されている。さらに、このcctoolsを導入。
この実験機で作業を進めると、
/sw/lib/odcctools/bin/ld: unknown flag: -macosx_version_min
なんてエラーが出てしまう。
gcc-4.0.2をfinkだったかsvnだったか、で、導入していて、ldが悪さをするのだな。
だから、あえて、
setenv LD "/usr/bin/ld"
setenv CC "/usr/local/bin/gcc"

と、設定したのでした。
それと、再度gmakeを使う時には、
gmake clean
と実行しただけでは、
configure: error: run `make distclean' and/or `rm ./config.cache' and start over
といった具合に、怒られてしまう。
へいへい。

気を取り直して、
gmake -j4 bootstrap
gmake check

例のように、ホワイトスペースに関するエラーがでまして、無視。
後は、

gmake install

最後に、gcc_select用のファイルを用意。
cd /usr/local/etc/select/gcc/
vi gcc431

/usr/local/gcc-4.3.1/bin/gcc
/usr/local/gcc-4.3.1/bin/cpp
/usr/local/gcc-4.3.1/bin/c++
/usr/local/gcc-4.3.1/bin/g++
/usr/local/gcc-4.3.1/bin/gcj
/usr/local/gcc-4.3.1/bin/gcov
/usr/local/gcc-4.3.1/bin/gfortran



gccを導入すると、FORTRANが使えるようになるのだよねぇ〜
ある人が、FORTRANのプログラムを表示することは、公然猥褻罪だ、と、言っていたな。
ある人は、FORTRANでプログラミングを覚えた人は、ダメだ、と、言っていたな。
別の人は、BASICでプログラミングを覚えた人は、ダメだ、と、言っていたな。

だから、あたしは、ダメな人、なんだな。
ちょっと、ダメでない、という、言い訳をすれば、FORTRANでもBASICでも、奇麗にプログラムを書く、という努力はしたよ。何しろ、数日過ぎれば、書いた自分でさえ、何をするためのプログラムなのかわからなくなったから、明日の自分への手紙だと思って書いたのであります。ちょっと、カッコいい、と、思うのは、あたしだけ、だろうね。

とは言え、今は、どちらのプログラムも、参考書が無いと書けない。
否、アルゴル系のプログラムは、全て、参考書が無いと書けない、よ。
論理だけが勝負、で、それをどう表現するのか、は、いちいち記憶していない。
何しろ、今日の昼、何を食べたのかさえ忘れているもん。
...食べてないかも

某チャンネルでスターゲイト SG-1 * の連続放送を見ている。
今日は、ある科学者が統合失調症で幻覚に従って行動し、SG-1が振り回されていた。
なんだか、悲しくなった。

ここ2週間ほど、あまり調子が良くない。先週は通院できずじまい。
ほとんど、寝ている。
SSRIの服用停止による副作用が出てきた。
今回、ひどいのは頭痛だ。ブルフェン200mg錠を朝昼晩服用して、ようやく治まる。
ちなみに、日本人の1日の最大量は450mgだったはずだ。
頭が、もやぁっ〜っと、している。
ひたすら、眠い。

指導生どもや業者さんの顔がちらつく。
東北地方で地震があった。
ケータイに速報が届いていたが、妹がケータイメールを送ってくれるまで、じっとしていた。
本当ならば、両親の無事を心配し、電話をかけなければならなかった。
できない。

渾身のチカラを入れて創ったエシラスは、使われなくなるようだ。
このことが、今のあたしにどれだけのショックを与えるのか、職場のだれも知らない。
単に、あたしの負担軽減という美名の元に行動している。
指導生徒ともに作成した「作品」である。
暴れる元気もない。

今日は、火曜日だった。
気付いたら、14時を回っていた。
とりあえず起きて、ブルフェンを服用して、煙草を吸う。
メールを書いた。
エシラスに対する誤解を解くための文章を書いているうちに、それなりに、頭ははっきりしてきたように思う。

デバック中のプログラムを見直す。
PHPとPerlがごちゃになる。
アルゴル系のプログラムはなんとかなるが、オブジェクト指向というのは、よくわからん。
強引にC言語の構造体とポインタの類推で創っている。
それでも、なんとかなっている。

自宅サーバでテストするとうまくできるのに、公式サーバではうまく動かない。
なんだぁ、こりゃぁ、で、週末が過ぎた。
伝統的なデバック、要所にprint文を入れて、テスト用のプログラムを動かす。
くだらないことだった。
しかし、printしてみて、初めてわかった。
そうね、chompで改行コードを削除しないといけないのね。
ふん。

この続きは、gccの導入に書こうかな。
要するに、念のため、自宅サーバと同じ環境を作ろうと、gcc-4.0.1を導入して、perl-5.10.0を再導入しちまったのであります。
...ちなみに、perl-5.10.0の導入の最初は、
sh Configure -de

としましたです。ここに書いた方法とは、敢えて変えてみた。
...あれ、書いてなかった。
Intel Macならば、
sh Configure -Accflags="-arch i686 -arch ppc" -de

PowerPCならば、
sh Configure -Accflags="-arch ppc" -de

と、しておりました。


さて、勿論、これらを導入しても、あたしの作ったプログラムは、ちゃんとエラーで止まったのでした。
あほらし。

指導生も言っていたし、わたしも授業で言っていたな。
プログラムは間違わない、人間が間違える。
はい、そのとおり。

configとmakeの吐き出す文字列を1日眺めて達成感なし
syslogとmailのlogがあふれ出すterminalが反射する顔
ググっても解決策さえ見つからず吾の専門ではないんだぜ
親分は大勘違い専門の立場を生かした助言とは何?
誤解解く努力もできずひたすらに試行錯誤の週末が過ぐ
うつうつとニコチン頼りて試行する錯誤の果てぞ飲酒となりし
自らに課した目標高過ぎし百も承知で挑みつ果てし
エシラスは文科省へのアリバイと割り切ることぞできるはず無き
日々作るアルゴル系のプログラム自己満足の極みなれども
中級のエンジニアだと思ひたし部品創ってなんぼの仕事
部品ども自作ながらもそれなりに組み合わせればシステムなりき
作品となりたる吾のシステムを捨てる部所有り事情も知らず
事情などわかるはずなし継ぎはぎをしても動かす技ぞ持ちける
吾が脳も継ぎはぎをしてほしきもの酒のチカラでやっと動けり
捨てられて大きく欠ける吾が左脳夜明けの月も霞む六月
1日に10万単位の行を読むErrorに怯えwarningは無視
知らぬ間に積み重なりきwarningコマンドすらも受け付けぬ彼
不規則を我慢はできず正確な機械にのめり打ち込める吾
サーバは機械のくせに生意気に個性持ちたりなんでだろなぁ
通院もままならぬままパキシルが切れし副作用慣れるものなり

またまた、怖いことに、偶然、気付いた、のだが、職場サーバの1つで、DNSがうまく動いていなかった。
このマシンは、支線のドメインとは異なるドメインを持っている。
先代の自宅サーバ、PowerMac Cube...CPUを入れ替えて1.8GHzにしちまったやつ...の設定をそのまま引き継いで利用していた。
恐らく、/etc/named.confがAppleのSoftware Updateで自動的に書き換えられてしまったのだろう。
Software Updateはそれなりに便利(窓達のそれとは違うとあたしは思っているけど)なのだけれども、あたしが書き換えた設定ファイルを上書きしてしまうことが有って、困る。
/etc/periodic/内のファイルが書き換えられたことに気付くまで、数ヶ月かかった。
もっとも、/etc/weekly.local、/etc/daily.localファイルを作るのが「正当」なのだろうけど、お間抜けなことに、それに気付くまでも数ヶ月かかってしまった。

それはそれとして、問題のマシンは、PowerMac G5 Pantherマシンである。
一応、/etc/named.confを元に戻したのだけれども、/var/log/system.logにエラーが出ていた。幸い、この時よりは全く怖くないのが幸い。

面倒なので、Webminを導入することにした。

ただしっ
DNSの設定は、単に、/etc/rndc.keyを作り直すだけで、正常に動くようになったのだけど。
Postfixの設定を見直す機会になったのは、有り難い。
Leopard(Server)と異なり、PostfixEnablerのチカラを借りて既に設定していた。
その所為だろう。Webminを利用して簡単ピーで設定できる。

有り難やぁ〜、有り難たやぁ〜

先達に感謝!

職場LAN上で、勝手にIPアドレスを使ってるやからがいる、らしい。
おまけに、禁止されているP2Pも使っている、ようだ。
仕方ないので、ネットワークを監視する、ことにした。
まぁ、本来のLAN管理者の仕事だから、しかたがない。

かつては、窓達NTであるアプリケーションを稼働させていたのだが、肝腎のマシンがいかれてしまって、それっきりになっている。
指導生の1人に作業依頼しているのだが、あてにならない、ので、自分が動く訳だ、な。

Wireshark、は、偶然知った。ダウンロードページには、Mac OS X、も含まれている。
ただし、Intel Mac、なんだな。

管理している支線は2本、1本には急にDNSサーバを立てたマシンがつながっている。で、このマシン、PowerMac G4なんだな〜
もう1本の支線上には、Intel Macがつながっている。ただし、Tigerマシン。

とりあえず、自宅サーバ、Intel Mac Leopard Serverに導入して実験。
これまで、X11が嫌いで使うことはない、と、思っていたのだけれども、使う破目になってしまった。
それなりに動いているし、なかなか、面白い。
...こーゆーのを見て面白いと思うところが、ヤバいっす。

PowerMac G4 Leopardマシンと、Intel Mac Tigerマシンには、portコマンドで必要なモジュールを導入し、手動インストールを試みたが、ダメ。
portコマンドで、Wiresharkのインストールがダメだったから手動で試みた。
どちらの場合も、GTK+、X11で失敗するのだな。

困ったところで、次のようなページを見つける。
http://yebo-blog.blogspot.com/2007/05/wiresharkmac-os-x.html

なんでも、「Gtk+ for Mac OS X」プロジェクト、というのが有るらしい。
なるほど。

で、さらに、
http://www.christian-hornung.de/
では、
Wireshark.app based on GTK native (without X11) for Intel Mac - OS X 10.4.9 Installer Package published
なんてことをしてくれている。すげぇ〜

さらに、さらに、

Mac OS X Leopard native Wireshark Installer Package
Intel Package: Leopard-native-Wireshark-Intel.dmg.bz2
PPC Package:Leopard-native-Wireshark-PPC.dmg.bz2

も、あるではないか。
すげぇなぁ〜

PowerMac G4 Leopardマシンには、Leopard-native-Wireshark-PPC.dmg.bz2、を導入。
Intel Mac Tigerマシンには、Wireshark-GTK-native-on-Intel-Mac-OS-X-10.4.9.dmg.tgzを導入。
両マシンとも、それなりに動いている。
ただし、自宅サーバIntel mac Leopard Serverの場合とは異なり、ボタンに表示される文字列が□になる場合が有って、ちびっと困る。
フォントをOsakaにしてみたけど、ダメみたい。
うーん。

まぁ、うまくパケットを捕まえられればいいのだし、見守ることにしましょ。

自宅サーバは、Leopard Serverだ。
だから、DNSの設定に苦労はしなかった。

職場サーバの1つに、普通のLoepardを導入して、「練習」していたのだが、急きょ、これを使って、DNSサービスをしなければならなくなってしまった。
それまで、放ったらかしで、無法地帯になっていた支線に配置するためだ。

で、まぁ、自宅サーバの/etc/named.confと/var/named/内のファイルどもを流用すればいいだろう、と、気軽に作業を進めたのだけれども、launchctlで起動させると、system.logに怖いメッセージを残し始めてしまった。例えば、こんな感じ...

Jun  1 00:00:12 dns named[29092]: starting BIND 9.4.1-P1 -f
Jun  1 00:00:12 dns named[29092]: could not listen on UDP socket: permission denied
Jun  1 00:00:12 dns named[29092]: creating IPv4 interface lo0 failed; interface ignored
Jun  1 00:00:12 dns named[29092]: could not listen on UDP socket: permission denied
Jun  1 00:00:12 dns named[29092]: creating IPv4 interface en1 failed; interface ignored
Jun  1 00:00:12 dns named[29092]: not listening on any interfaces
Jun  1 00:00:12 dns named[29092]: /private/etc/named.conf:16: couldn't add command channel 127.0.0.1#54: permission denied
Jun  1 00:00:12 dns named[29092]: logging channel 'default' file '/Library/Logs/named.log': permission denied
Jun  1 00:00:12 dns named[29092]: couldn't open pid file '/private/var/run/named.pid': Permission denied
Jun  1 00:00:12 dns named[29092]: exiting (due to early fatal error)
Jun  1 00:00:12 dns com.apple.launchd[191] (org.isc.named[29092]): Exited with exit code: 1
Jun  1 00:00:12 dns com.apple.launchd[191] (org.isc.named): Throttling respawn: Will start in 10 seconds

で、
http://www.fraction.jp/log/archives/2007/11/02/Leopard_de_BIND
や、
http://earlybirds.ddo.jp/namahage/inegalog/article.php?id=22
や、
http://earlybirds.ddo.jp/namahage/inegalog/article.php?id=49
や、
http://www.atmarkit.co.jp/flinux/rensai/bind01/bind01.html
や、
http://www.atmarkit.co.jp/flinux/rensai/bind901/bind901a.html
を読み直して、viを駆使して、作業したけれども、ダメ、なのであります。

ついに、
https://earlybirds.ddo.jp/namahage/inegalog/article.php?id=21
を参考に、Webmin(日本のユーザーグループも有るみたい)とUserminを導入することにした。
まず、日本のユーザーグループのページからソースファイルをダウンロード、setup.shを走らせると、あらまぁ簡単、導入されちゃいました。
モジュールの中の言語を日本語にして、さらに、アップデートして、ついでにUserminを導入して、不足していたperlモジュールを導入して...これはうまくできなかったので、CPAN経由で導入して、これはうまくできそぉ〜、と、安心したのはつかの間、結局、DNSの設定はうまくいかなかったのだ、な〜

そもそも、起動に問題が有るのか、と、思って、Lingon、も、導入してみた。
なかなか、便利、そうなのではあるが、viでplistファイルをいじくった方が実感が有る。
で、結局、org.isc.named.plist、の、記述には、問題はない、ようなのだな。
自宅サーバのそれと同じ、なのだから、動かないはずがない。
困る。
で、寝る。

気を取り直して、/etc/named.confを眺める。ついでに、自宅サーバのそれと比べる。
なんで、root特権を持って起動しているのに、permission denied、なのか、が、わからんのですよ。

普通Leopardの/etc/named.confでは、ログの指定に対して次のように記述されていた。

logging {
        category default {
                _default_log;
        };

        channel _default_log  {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};


対して、自宅サーバLeopard Serverの場合には、Includeを使いまくっていたけれども、結局、

logging {
        category default {
                apple_syslog ;
        };
        channel apple_syslog {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};

と、書かれている、の、だ、な。
で、この自宅サーバの記述に合わせて修正したら、動いちまった。

魔法の言葉、apple_syslog、だな。

兎に角、眠い。
仕方ないので、寝る。
いつの疲れからわからない疲労感でいっぱい。
幸い、夜は眠れる、が、さらに、昼も寝る。
過眠だ、な。
木曜日、通院した、の、だ、が、担当医が休みだった。
幸い、薬だけは出してもらえた。
いい加減、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

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

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

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を利用している。このサーバがひねくれもの。
レスボンスが異常に遅い、と、事務局から苦情が来て、試してみると、確かにおそぉ〜い。
再構築すると、途中で何度かログインしなければならないし、さらに、完了したというページが真っ白。
で、(やっと)ログをみると、Image::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倍還し

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

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

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

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

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

...だって,そう思ったんだもん

故郷の街彷徨ひて知りたくも知られたくもなし上げられぬかほ

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

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


...酔っぱらってました

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

それぞれに咲き誇りたる花びらの死骸の山の雨上がりなり
それぞれに雄蕊雌蕊を延ばしたるツツジサツキの花揺れる午後

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 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は同じモジュールを何度も導入しようとするし、まったく...

某シマンテック製品のウィルス定義ファイルを更新しないといけない時期だ。
職場サーバーを含めて、30台近くの機械が対象になる。
メールサーバーを新しく構築した際、ClamAVamavisd-newを導入してみた。
で、これらを他のサーバーどもにも入れてみようかと、思ったのが、なんだね。
同じ時期に導入した同じ型番を持った機械なのに、片方にはすんなり導入できたけど、もう片方にはできなかったり、困ったもんだ。
とりあえず、主要サーバーには導入できた。残ったのは、クライアントマシン。こちつらのためにメモっておくことにする。

オリオン座
雲に霞んだ
上弦の
月に照らされ
光る白梅

----------
なんともミスマッチだな。

QRコード

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

Fatal error: Uncaught Error: Call to undefined function split() in /Users/kumecchi/weblog/cat4/2008/index.php:3982 Stack trace: #0 {main} thrown in /Users/kumecchi/weblog/cat4/2008/index.php on line 3982