我知道缺少这个神秘模块的文档,但我正在运行Strawberry Perl,只要能够安装它,我就会很高兴。我通常从命令行运行类似以下内容的命令来获取模块:
cpan WWW::Selenium
例如,获取WWW::Selenium。然而当我跑步的时候
cpan Lucene
我明白了这一切,因为我以前从未见过这种情况,我将矛头指向Windows,因为缺乏更好的线索:
C:\Users\PHJohnson\Desktop>cpan Lucene
CPAN: CPAN::SQLite loaded ok (v0.202)
Database was generated on Mon, 25 Jun 2012 18:28:43 GMT
Running install for module 'Lucene'
Running make for T/TB/TBUSCH/Lucene-0.18.tar.gz
CPAN: Digest::SHA loaded ok (v5.63)
CPAN: Compress::Zlib loaded ok (v2.042)
Checksum for C:\strawberry\cpan\sources\authors\id\T\TB\TBUSCH\Lucene-0.18.tar.gz ok
CPAN: Archive::Tar loaded ok (v1.80)
CPAN: File::Temp loaded ok (v0.22)
CPAN: Parse::CPAN::Meta loaded ok (v1.4401)
CPAN: CPAN::Meta loaded ok (v2.112621)
CPAN.pm: Building T/TB/TBUSCH/Lucene-0.18.tar.gz
couldn't find clucene config file at Makefile.PL line 34.
Warning: No success on command[C:\strawberry\perl\bin\perl.exe Makefile.PL]
TBUSCH/Lucene-0.18.tar.gz
C:\strawberry\perl\bin\perl.exe Makefile.PL -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install
Could not read metadata file. Falling back to other methods to determine prerequisites
C:\Users\PHJohnson\Desktop>
我想知道,我如何才能解决这个问题--我可以在Windows上获得Lucene库吗?
发布于 2012-06-25 19:20:51
看,一些Perl模块只是一些库和/或系统工具的包装器,允许在Perl程序中自然地使用它们(使用熟悉的语法构造等)。Lucene是以相同的方式构建的:它是围绕CLucene索引库的包装器。
所以你有两个选择(对于Perl来说很常见):要么尝试构建CLucene from the source (我说的是“尝试”,因为我真的不知道它是否能在Windows上运行)--或者寻找类似的解决方案,比如KinoSearch (或者它的分支,KinoSearch1 --两者都被评论者评为相当不错)和Plucene。后者实际上是Lucene搜索引擎的Perl端口,而不是任何类型的包装器。
发布于 2012-06-25 18:54:50
查看Makefile.PL,该模块不是为在Windows下工作而设计的,如果您查看"C:\Strawberry\cpan\build\“下的Makefile.PL (在我的机器上),您应该会在第8行看到类似以下内容:
## Hash that specifies for each OS all possible directories to look
## for CLucene/clucene-config.h
my $rh_include_dirs = {
"linux" => ["/usr/include", "/usr/lib"],
"freebsd" => ["/usr/local/include", "/usr/local/lib"],
"darwin" => ["/usr/local/include", "/usr/local/lib"],
};
您可以尝试添加另一个条目,其路径为您在windows中安装Lucene的位置。
my $rh_include_dirs = {
"linux" => ["/usr/include", "/usr/lib"],
"freebsd" => ["/usr/local/include", "/usr/local/lib"],
"darwin" => ["/usr/local/include", "/usr/local/lib"],
"MSWin32" => ["path to your lucene install"],
};
在更新文件并保存之后,您应该能够执行常规的perl Makefile.PL
,然后执行常规的make
和make install
(或windows上的nmake )。Makefile.PL脚本将为make
生成构建和安装软件包所需的文件。
我没有Lucene,所以我不能用它...
https://stackoverflow.com/questions/11195333
复制