« clamav-update 2.0.1をMac OS X 10.3.9にインストール、でも | トップページ | ことえりの学習 »

2007年3月11日 (日)

ClamAV 0.90.xとclamav-update 2.1をMac OS X 10.3.9で使う方法

ClamAVの自動更新を行うclamav-updateでClamAV 0.90.xのMakefile中の-arch i386を自動で削除するやり方を、clamav-updateの作者のOKAMURAさんに教えていただいた(こちらを参照)。

clamav-update.confにsedを使って-arch i386を削除する処理を追加する。

$Setting{phase}->{specifier} = sub {
    # use build-in specifier
    PhaseSpecifier4ClamAV4ClamXav();

    # If you use ClamAntiVirusDaemon, uncomment following lines.
    #push @{\$Phase{install}->{method}}, (
    #   [qw(/Library/StartupItems/ClamAntiVirusDaemon/ClamAntiVirusDaemon restart)],
    #);

    # If you use FreshClamDaemon, uncomment following lines.
    #push @{\$Phase{install}->{method}}, (
    #   [qw(/Library/StartupItems/FreshclamDaemon/FreshclamDaemon restart)]
    #);

    # other customization
    $Phase{build}->{method} = [
        [qw(./configure --prefix=/usr/local/clamXav)],
        [qw(cp Makefile Makefile.txt)],
        ["sed 's/ -arch i386 / /g' Makefile.txt > Makefile"],
        [qw(cp libclamav/Makefile libclamav/Makefile.txt)],
        ["sed 's/ -arch i386 / /g' libclamav/Makefile.txt > libclamav/Makefile"],
        [qw(make)],
    ];

    1;
};

まとめると、

1. ~/.MacOSX/environment.plistに

    <key>PERL_BADLANG</key>
    <string>0</string>
    <key>LC_ALL</key>
    <string>ja_JP.eucJP</string>

を追加してPerlが止まらないようにして、

2.  clamav-update.confに上記の追加をして自動でmakeできるようにする

という2種類の処理が必要だったということで。1の方は多分10.3.9の問題で(うちのマシン固有の問題という可能性もあるが)、2の方はClamAV 0.90.xの問題な訳だけど。

Mac OS XやUnixの素人に丁寧に教えてくださったclamav-updateの作者のOKAMURAさんに深く感謝。

ただ、Perlの警告メッセージはあくまでもメッセージらしいので、clamav-updateやそのinstall.commandが動かないというのは本来あり得ないとの事。でも、私にはその辺を解明する技量が無いのであった (^^;)

2007.4.26追記
clamav-update.confへの追加部分に間違いがありました。freshclamをデーモンとして使っている場合と、clamdを使っている場合は「# If you use ClamAntiVirusDaemon(またはFreshClamDaemon), uncomment following lines.」以下の3行の先頭の「#」を削除しておくのですが、「push @{\$Phase{install}->{method}}, ( 」の「$Phase」の前にある「\」は不要です。そのままだとclamav-updateを使ってclamavをアップデートする時にエラーとなります。したがって、freshclamをデーモンとして使っている場合とclamdを使っている場合は以下のようになります。

$Setting{phase}->{specifier} = sub {
    # use build-in specifier
    PhaseSpecifier4ClamAV4ClamXav();

    # If you use ClamAntiVirusDaemon, uncomment following lines.
    #push @{\$Phase{install}->{method}}, (
    #   [qw(/Library/StartupItems/ClamAntiVirusDaemon/ClamAntiVirusDaemon restart)],
    #);

    # If you use FreshClamDaemon, uncomment following lines.
    #push @{\$Phase{install}->{method}}, (
    #   [qw(/Library/StartupItems/FreshclamDaemon/FreshclamDaemon restart)]
    #);

    # other customization
    $Phase{build}->{method} = [
        [qw(./configure --prefix=/usr/local/clamXav)],
        [qw(cp Makefile Makefile.txt)],
        ["sed 's/ -arch i386 / /g' Makefile.txt > Makefile"],
        [qw(cp libclamav/Makefile libclamav/Makefile.txt)],
        ["sed 's/ -arch i386 / /g' libclamav/Makefile.txt > libclamav/Makefile"],
        [qw(make)],
    ];

    1;

};

 

2007/12/7追記

別記事でも書いたのだけど、最近のClamAV 0.91.xではPantherで -arch i386がつかなくなったので、この処理は不要になった。

|

« clamav-update 2.0.1をMac OS X 10.3.9にインストール、でも | トップページ | ことえりの学習 »

ClamAV」カテゴリの記事

Mac OS X」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: ClamAV 0.90.xとclamav-update 2.1をMac OS X 10.3.9で使う方法:

« clamav-update 2.0.1をMac OS X 10.3.9にインストール、でも | トップページ | ことえりの学習 »