Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gcnmzがC以外のドライブで動かない
- From: HAGA Nobuaki <haganob@xxxxxxxxxx>
- Date: Thu, 03 Apr 2003 12:28:46 +0900
- X-ml-name: namazu-win32-users-ja
- X-mail-count: 01789
芳賀と申します。
件名の通り、C以外のドライブでgcnmzがエラーを出して止まります。
Namazu 2.0.12 for win32 をデフォルトでインストールしています。
環境はWINDOWS2000、ActivePerlはbuild633です。
C:\test>gcnmz
Usage: gcnmz [options] <target>...
--help show this help and exit.
-b, --no-backup do not backup original file.
-v, --verbose verbose mode.
-q, --quiet quiet mode.
C:\>gcnmz
Usage: gcnmz [options] <target>...
--help show this help and exit.
-b, --no-backup do not backup original file.
-v, --verbose verbose mode.
-q, --quiet quiet mode.
のように、Cドライブ上ではカレントディレクトリにかかわらず動作しますが、
他のドライブでは、
N:\>gcnmz
Can't locate nmzidx.pl in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib
. /n
amazu/share/namazu/pl) at C:\namazu\bin/gcnmz line 11.
のようになり、動作しません。
原因の推測ですが、gcnmzのソースを見ると、10行目に、
my $PKGDATADIR = $ENV{'pkgdatadir'} || "/namazu/share/namazu";
push(@INC, $PKGDATADIR . "/pl");
とあるのですが、PKGDATADIRという環境変数は通常のインストールでは定義されていないようです。
それでNドライブ上で動作させたときのエラーメッセージで表示されているように、
/namazu/share/namazu/pl
が@INCに追加されるのみになっています。
Cドライブ上では、おそらくperlが
C:/namazu/share/namazu/pl
と勝手に読み替えてくれて正常に動作しているのでしょうが、他のドライブ上では
そのドライブの/namazu/share/namazu/plを探しに行って結局nmzidx.plを見つけられていないようです。
対策としては、gcnmzの当該部分を書き換える、
あるいは環境変数PKGDATADIRを定義するということになりそうです。
(私の環境では両方で動作確認できました)
以上、報告まで。