2012-06-25 2 views
0

Я знаю, что документации не хватает для этого загадочного модуля, но Im работает Strawberry Perl и будет счастлив только с возможностью его установки. Я обычно запустить что-то вроде следующего из командной строки, чтобы получить модуль:Perl и Lucene ... в Windows?

cpan WWW::Selenium 

Чтобы получить WWW :: Селен, например. Тем не менее, когда я бегу

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> 

Я удивляюсь, как могу ли я исправить это - могу ли я получить библиотеку Lucene в Windows?

ответ

3

Престола, некоторые модули Perl просто обертки вокруг некоторых библиотек и/или системных инструментов, что позволяет использовать их, естественно, в пределах Perl-программа (с использованием знакомых синтаксических конструкций и т. Д.) Lucene построен таким же образом: это оболочка вокруг библиотеки индексирования CLucene.

У вас есть (как это часто бывает с Perl) два варианта: либо попытайтесь построить CLucene from the source (я сказал «попробуй», потому что я действительно не знаю, будет ли это работать на Windows или нет) - или искать аналогичные решения, такие как KinoSearch (или его вилка, KinoSearch1 - оба оценены довольно хорошо рецензентами) и Plucene. Последний на самом деле является Perl-портом поисковой системы Lucene, а не оболочкой любого типа.

+0

Gotcha - не знал о Plucene! Получил это сейчас. – PinkElephantsOnParade

+0

Вы должны использовать [Lucy] (http://metacpan.org/module/Lucy) (свободный-C-порт Lucene), с которым теперь превратился KinoSearch, что Apache.org запускает его, определенно не Plucene. Google для больше, если вам это нужно. – Ashley

2

Глядя на Makefile.PL, модуль не предназначен для работы под Windows, если вы посмотрите на Makefile.PL в разделе «C: \ Strawberry \ cpan \ build \» (на моей машине), вы должны увидеть что-то вроде этого на линии ~ 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"], 
}; 

вы могли бы попытаться добавить еще одну запись с пути, где вы 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 (или NMake на окнах). Сценарий Makefile.PL генерирует необходимые файлы для make для сборки и установки пакета.

У меня нет Lucene, поэтому я не могу попробовать его Тх ...

+0

+1 для очень полезной вещи - я не получил работу, но я даже не знал, что МОГУТ делать это до сих пор. – PinkElephantsOnParade

+0

Рад, что я помог каким-то образом :)! – dryajov