前のトピックを表示 :: 次のトピックを表示 |
投稿者 |
メッセージ |
yish
登録日: 2007.02.21 記事: 11 所在地: 静岡
|
日時: 2007-03-03 21:59:21+00:00 記事の件名: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
Mac OS 10.3.9を使っています。10.3.9でclamav-updateとClamAV 0.90を使う場合、ちょっと注意が必要な事が判りました。
clamav-updateについて。
2.0.1のinstall.Commandを実行すると、
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = (unset),
LC_COLLATE = "C",
LC_TIME = "C",
LANG = "ja_JP.EUC"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
と出力されてインストールできません。また、1.xをインストールしていた時も、Perlの実行段階でこの警告が出て動作していなかったようです。これはMac OS 10.3.9付属のPerl 5.8.1の問題らしいです。
うちの環境では、~/.MacOSX/environment.plistに
<key>PERL_BADLANG</key>
<string>0</string>
<key>LC_ALL</key>
<string>ja_JP.eucJP</string>
を追加する事でinstall.Commandを実行できました。
・・・実は最初にダウンロードして解凍したフォルダのパスにスペースが入っていて、install.Commandがパス名を正しく取得できずに止まってしまいました。フォルダ名にスペースを入れる私がいけないのですが。
次にClamAV 0.90。10.3.9ではコンフィギュレーションしてできたMakefileとlibclamav/Makefileを開いて
-arch i386
と書かれたところを探し出して削除しないとmakeできません(-arch i386 -arch ppcと書かれているので、-arch ppcだけ残す)。10.3のXcodeがi386なんてアーキテクチャを知らないのは無理もないことですけど。該当箇所はMakefile 1箇所、libclamav/Makefile 2箇所でした。
今日インストールした0.90.1も同様のMakefileになっていたので、このままではclamav-updateで自動アップデートできません。clamav-updateがアップデートしようとしないように、clamav-update.confの中身をコメントアウトしておきました。10.3用に、Makefileの中の-arch i386を削除するスクリプトを作ればいいのでしょうが、Perlはさっぱりわからないのでお手上げです。当分はfreshclamのログかClamAVのサイトを見て手動ダウンロード/インストールです。 |
|
トップに戻る |
|
 |
okamura Site Admin

登録日: 2006.11.13 記事: 291 所在地: 埼玉県
|
日時: 2007-03-04 05:35:16+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
まず clamav-update パッケージに含まれる install.command が利用できないとのことですが、perl は確かに LANG 環境変数などが未設定の場合警告を出します。が、 Quote: | perl: warning: Falling back to the standard locale ("C"). | というメッセージにあるようにそれは警告です。デフォルトの C (これは ASCII 文字のみをメッセージに使用するロケールで実質英語のこと)を使用するというものです。このメッセージの後に install.comand の出力がなされませんか? install.command は ASCII 文字のみを用いたインターフェースなのでそれで差し支えないはずです。
Mac OS X で LANG を設定するのであれば、私は ja_JP.UTF-8 をお薦めします。Panther の頃から私はそれを用いています。というのは Terminal.app はデフォルトで UTF-8 での入出力になっているからです。最近の Linux でも ja_JP.UTF-8 が主流になってきているので相互運用性も十分と思われます。
次に Panther での ClamAV についてですが、現在利用可能な Panther がないので試せませんが、./configure のパラメータの指定でなんとかならないでしょうか?を実行するとどんなパラメータを渡すことができるかのサマリが出力されます。私自身は使ったことがないのですが --target オプションなどが使えそうな気がします。
また、Makefile を編集して -arch i386 を削除してからコンパイルするとのことですが、これは Code: | sed 's/ -arch i386 / /g' | という機械的な操作でできそうです。もしそうなら clamav-update.conf で configure と make の間にそれを挟めば自動でビルドできるでしょう。
yish さんが詳しそうだと感じたので詳しくない書き方になってしまいましたがヒントになれば幸いです。また、Panther 自体は持っているので外付けハードディスクを整理してインストールしてみようかと思っています。G4 のマシンが一つ眠っているのでそれを有効活用するために検証機としても利用したいなと最近思い始めたので。(すぐに作業にかかれるかどうかはあまり期待しないでください。) _________________ OKAMURA |
|
トップに戻る |
|
 |
yish
登録日: 2007.02.21 記事: 11 所在地: 静岡
|
日時: 2007-03-04 21:38:23+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
OKAMURAさん、アドバイスありがとうございます。
おっしゃる通り、ただの警告なので動いてくれても良さそうな気がするのですが、install.commandをダブルクリックするとPerlの警告を表示しただけで終わっています。この時はclamav-update-2.0.1フォルダを名前に空白文字を含んだフォルダに置いてあったのですが、environment.plistを変更して実行した場合はパスの取得に失敗してinstall.shが「そんなディレクトリは無い」というようなメッセージを見た記憶があります(うっかりして記録を取り忘れました)。
また、clamav-update.plをターミナルから起動した場合も、最初の設定のままではPerlの警告のあとに何も出力されずに止まっています。setenv LC_ALL ja_JP.eucJPとしてからclamav-update.plを実行した場合は、-arch i386のせいでmakeに失敗しますが、clamav-update.plはちゃんと動いていました。
アドバイスいただいた通り、LANGはja_JP.UTF-8としておきました。
ClamAVの方ですが、clamav-update.plに以下の太字の部分を追加してみました
sub PhaseSpecifier4ClamAV4ClamXav {
#### Initialization ####
# use PhaseSpecifier4General as base.
PhaseSpecifier4General();
#### Build Phase Customization ####
# change command sequence
$Phase{build}->{method} = [
[qw(./configure --prefix=/usr/local/clamXav)],
[qw(cp Makefile Makefile.txt)],
[qw(sed 's/ -arch i386 / /g' Makefile.txt > Makefile)],
[qw(cp libclamav/Makefile libclamav/Makefile.txt)],
[qw(sed 's/ -arch i386 / /g' libclamav/Makefile.txt > libclamav/Makefile)],
[qw(make)],
];
qw()の中身はターミナルから実行してちゃんと動くのを確認してあります。Makefileの中の-arch i386が削除されたのを確認し、makeもできています(たぶん・・・)。
私はMac OS Xを使い始めてまだ1年も経っていない初心者ユーザですし、Unixも今まで使った事がないので、全然詳しくありません(←全然知らないとも言う)。おかしな質問もする事があるかと思いますが、これからもよろしくお願いいたします。 |
|
トップに戻る |
|
 |
okamura Site Admin

登録日: 2006.11.13 記事: 291 所在地: 埼玉県
|
日時: 2007-03-05 01:57:07+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
yish wrote: | この時はclamav-update-2.0.1フォルダを名前に空白文字を含んだフォルダに置いてあったのですが、environment.plistを変更して実行した場合はパスの取得に失敗してinstall.shが「そんなディレクトリは無い」というようなメッセージを見た記憶があります(うっかりして記録を取り忘れました)。 | なるほど。空白が含まれたディレクトリは考慮していませんでした。install.command は OK ですが、それが呼び出す install.sh が NG です。早速次のバージョンのために修正します。どうもありがとうございます。
話が少しそれますが、日本語を含んだディレクトリの場合は、そもそも(デフォルトの状態では) install.command をターミナルが起動することができないので僕の方ではお手上げです。これは Mac OS X (というかその Terminal.app) の問題です。
yish wrote: | また、clamav-update.plをターミナルから起動した場合も、最初の設定のままではPerlの警告のあとに何も出力されずに止まっています。setenv LC_ALL ja_JP.eucJPとしてからclamav-update.plを実行した場合は、-arch i386のせいでmakeに失敗しますが、clamav-update.plはちゃんと動いていました。 | すみませんが、止まってしまうというのはどういう状態のことを指していますか? LANG などのロケール関連の環境変数には依存しない作りになっているので、止まるというのが想像できません。
yish wrote: | ClamAVの方ですが、clamav-update.plに以下の太字の部分を追加してみました | clamav-update.pl は直接変更しないようにお願いします。そうすると、新しいバージョンに入れ替えるたびに書き換えが必要になって面倒ですよね。設定ファイルで必要な変更ができるように設計してあります。/usr/local/clamXav/etc/clamav-update.conf 内にて次のように書いてください。 Code: | $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;
}; |
yish wrote: | 私はMac OS Xを使い始めてまだ1年も経っていない初心者ユーザですし、Unixも今まで使った事がないので、全然詳しくありません(←全然知らないとも言う)。 | え! そうなんですか。お書きになった clamav-update.pl の書き換えも的を射た内容でとてもそう見えないというか、凄いです。
それならなおさら Panther 検証機の準備を早くしないとですね。
それなら LC_ALL とか LANG の関係について説明しておきますね。ロケール関連の環境変数には他に LC_MESSAGES とか LC_TIME などがあります。それぞれメッセージのロケール、時間表記のロケールを指定するものなのですが、LC_ALL はそれら LC_なんちゃら という環境変数を無視して、全部統一するためのものです。LANG も似ていますが、これは特に指定されていない LC_なんちゃら の値を指定するものです。ですから Code: | LC_ALL=ja_JP.UTF-8; export LC_ALL
LC_TIME=ko_KR.UTF-8; export LC_TIME
unset LC_MESSAGES | と書くと、LC_TIME も LC_MESSAGES も ja_JP.UTF-8 を設定したのと同じことになり、時間表記もメッセージも UTF-8 の日本語を指定したことになります。一方 Code: | LANG=ja_JP.UTF-8; export LANG
LC_TIME=ko_KR.UTF-8; export LC_TIME
unset LC_MESSAGES | と書くと LC_TIME は ko_KR.UTF-8、LC_MESSAGES は ja_JP.UTF-8 を指定したのと同じことになり、時間表記は UTF-8 の韓国語、メッセージは UTF-8 の日本語を指定したことになります。ですから、LC_ALL を指定するときは、他でどう設定していようと必ずこれを使用せよという意味になり、LANG を指定するときは、特に指定していなかったらこれを使用せよという意味になります。ロケールは LANG で指定して個別に変更できるよう融通が効く余地を残しておくのが通常のようです。
私は 15 年くらい UNIX 系 OS を使用していますが、ログイン直後の状態で LANG の指定以外が必要だったことはありません。逆に言うと LC_ALL で指定していても同じということではあります。同じなら困ったときに融通が利く方がいいですよね。 _________________ OKAMURA |
|
トップに戻る |
|
 |
yish
登録日: 2007.02.21 記事: 11 所在地: 静岡
|
日時: 2007-03-05 06:18:11+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
Quote: | すみませんが、止まってしまうというのはどういう状態のことを指していますか? LANG などのロケール関連の環境変数には依存しない作りになっているので、止まるというのが想像できません。 |
install.commandでは実行済みターミナル出力にPerlのLANG関係の警告が表示されたあとになにも出力されません。ターミナルから直接clamav-update.plを実行した場合は警告表示のあとにやはり何も表示されずにPerlが立ち上がったままになっています。
うちの10.3.9がおかしいという可能性も否定できません。ClamAVをインストールしてあるマシンはベージュG3 DTですが、やはり10.3.9で動いているクラムシェルiBookでターミナルからPerlを実行するとベージュG3のような警告が出ません。iBookには./MacOSX/environment.plistが存在していません。
Quote: | clamav-update.pl は直接変更しないようにお願いします。そうすると、新しいバージョンに入れ替えるたびに書き換えが必要になって面倒ですよね。 |
おっしゃる通りですね、了解です。clamav-update.plを元に戻し、clamav-update.confを修正します。clamav-update.plを変更したのは、Perlを使ったことが無いので、clamav-update.confを見てもどこをどう修正すればいいのか見当がつかなかったのです。プログラミングのようなことはExcelのVBAしか今は使いませんし、昔MS-DOSのTurbo Pascal 3.0〜5.5やTurbo C 1.5/2.0をちょっと使ったことがある程度なので。
ところで、./configure --helpの出力を見ると、--targetオプションが使えそうに思えるのですが、指定するターゲットがよくわかりません。試しにpowerpc-apple-darwin7.9.0を指定してコンフィギュレーションしてもMakefileには-arch i386が入って来ていました。 |
|
トップに戻る |
|
 |
okamura Site Admin

登録日: 2006.11.13 記事: 291 所在地: 埼玉県
|
日時: 2007-03-05 14:44:26+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
yish wrote: | install.commandでは実行済みターミナル出力にPerlのLANG関係の警告が表示されたあとになにも出力されません。ターミナルから直接clamav-update.plを実行した場合は警告表示のあとにやはり何も表示されずにPerlが立ち上がったままになっています。 | 全く原因不明ですね。困りましたね。後者はもし今インストールしてあるのが ClamAV 0.88.7 とか 0.90 だとしたらダウンロードをしている最中かもしれません。今、相当込んでいるようでかなりダウンロードが遅いです。
yish wrote: | 10.3.9で動いているクラムシェルiBookでターミナルからPerlを実行するとベージュG3のような警告が出ません。iBookには./MacOSX/environment.plistが存在していません。 | ええ、そうですよね。私の手元の幾つかのマシン(Intel Tiger 以外は Linux)では perl 5.8.x は警告は出ず、perl 5.6.x では出ています。もしかしたら perl のバージョンが古いということはないでしょうか?とやると Code: | This is perl, v5.8.6 built for darwin-thread-multi-2level | とか Code: | This is perl, v5.8.8 built for ppc-linux-thread-multi | とか Code: | This is perl, v5.6.1 built for i686-linux | とか出ます。最後の perl 5.6.1 だけ LANG 等が設定されていないと警告されます。
yish wrote: | ところで、./configure --helpの出力を見ると、--targetオプションが使えそうに思えるのですが、指定するターゲットがよくわかりません。試しにpowerpc-apple-darwin7.9.0を指定してコンフィギュレーションしてもMakefileには-arch i386が入って来ていました。 | --host, --build, --target が使えそうな気もするのですが、これらを使ったことがないので私もよくわかりません。powerpc-apple-darwin7.9.0 で良さそうに思います。 _________________ OKAMURA |
|
トップに戻る |
|
 |
yish
登録日: 2007.02.21 記事: 11 所在地: 静岡
|
日時: 2007-03-11 14:11:54+00:00 記事の件名: Re: Mac OS 10.3.9でのclamav-updateとClamAV 0.90 |
|
|
Perlのバージョンを見てみました(Perl --Versionでは理解不能なスイッチ--Versionと言われたので Perl -version とした結果です)。
問題のマシンベージュG3 (10.3.9)もクラムシェルiBook(10.3.9)も
Quote: | This is perl, v5.8.1-RC3 built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail) |
でした。
ちなみに Perl -Version だと
Quote: | Summary of my perl5 (revision 5.0 version 8 subversion 1 RC3) configuration:
Platform:
osname=darwin, osvers=7.0, archname=darwin-thread-multi-2level
... さらに細かい情報が続く
|
となって、ベージュG3とiBookを比べても違いはありませんでした(ベージュG3はenvironment.plistに設定した
Quote: | %ENV:
PERL_BADLANG="0" |
だけ違いましたけど。
ベージュG3とiBookにインストールしてあるソフトは完全に同一ではないので、その辺に挙動の違いがある可能性もありますが、調べ上げる根性がありません。
ともあれ、現状でinstall.commandもclamav-update.plも動くようになったので、私としてはこれで十分な状態ではあります。いろいろ教えていただきありがとうございました。clamav-update 2.0.1からclamav-update 2.1へのアップデートもclamav-update自身でちゃんと行えました。 |
|
トップに戻る |
|
 |
|