23 |
|
|
24 |
=head2 Requirements |
=head2 Requirements |
25 |
|
|
26 |
This extension is based on PostgreSQL RDBMS and HyperEstraier full-text |
This extension is based on PostgreSQL RDBMS and Hyper Estraier full-text |
27 |
search engine (and it's perl bindings). |
search engine (and it's perl bindings). |
28 |
|
|
29 |
If you are using Debian, you are in luck. All required packages are |
If you are using Debian, you are in luck. All required packages are |
32 |
# apt-get install postgresql |
# apt-get install postgresql |
33 |
# apt-get install hyperestraier libestraier-dev libqdbm-dev |
# apt-get install hyperestraier libestraier-dev libqdbm-dev |
34 |
|
|
35 |
Now you can skip to installation of L<HyperEstraier perl bindings> below. |
Now you can skip to installation of L<Hyper Estraier perl bindings> below. |
36 |
|
|
37 |
If you don't have pre-packaged binaries for your installation, you will |
If you don't have pre-packaged binaries for your installation, you will |
38 |
need to install additional packages by hand. |
need to install additional packages by hand. |
44 |
|
|
45 |
=head3 QDBM |
=head3 QDBM |
46 |
|
|
47 |
First, you need qdbm on which HyperEstraier depends. Installation is simple. |
First, you need qdbm on which Hyper Estraier depends. Installation is simple. |
48 |
|
|
49 |
$ tar xvfz qdbm-1.8.31.tar.gz |
$ tar xvfz qdbm-1.8.31.tar.gz |
50 |
$ cd qdbm-1.8.31 |
$ cd qdbm-1.8.31 |
52 |
$ make |
$ make |
53 |
$ sudo make install |
$ sudo make install |
54 |
|
|
55 |
=head3 HyperEstraier |
=head3 Hyper Estraier |
56 |
|
|
57 |
Also quite simple. |
Also quite simple. |
58 |
|
|
62 |
$ make |
$ make |
63 |
$ sudo make install |
$ sudo make install |
64 |
|
|
65 |
Then you will have to install perl bindings for HyperEstraier. |
Then you will have to install perl bindings for Hyper Estraier. |
66 |
|
|
67 |
=head3 HyperEstraier perl bindings |
=head3 Hyper Estraier perl bindings |
68 |
|
|
69 |
This might take a bit more work. You will need to have C<swig> and C<g++> installed |
Just use C<cpan> shell to install C<Search::Estraier> module |
|
before you can install perl bindings. |
|
70 |
|
|
71 |
$ tar xvfz hyper_estraier_wrappers-0.0.10.tar.gz |
$ sudo cpan Search::Estraier |
|
$ cd swig_hest/perl/ |
|
|
$ swig -c++ -perl5 -o HyperEstraier_wrap.cpp ../HyperEstraier.i |
|
|
$ cp ../HyperEstraierWrapper.cpp ./ |
|
|
$ perl Makefile.PL |
|
|
|
|
|
You might need to remove C<estconfig --mtlibs> from C<Makefile.PL> if it |
|
|
fails to run with following message: |
|
|
|
|
|
Unrecognized argument in LIBS ignored: 'configuration' |
|
|
Unrecognized argument in LIBS ignored: 'helper' |
|
|
Unrecognized argument in LIBS ignored: 'for' |
|
|
Unrecognized argument in LIBS ignored: 'Hyper' |
|
|
Unrecognized argument in LIBS ignored: 'Estraier' |
|
|
Writing Makefile for HyperEstraier |
|
|
|
|
|
Working C<Makefile.PL> for my particular installation is: |
|
|
|
|
|
# File : Makefile.PL |
|
|
use ExtUtils::MakeMaker; |
|
|
WriteMakefile( |
|
|
NAME => 'HyperEstraier', |
|
|
INC => sprintf('%s', `pkg-config --cflags hyperestraier`), |
|
|
LIBS => [sprintf('-lstdc++ %s %s' , `pkg-config --libs hyperestraier`)], |
|
|
OBJECT => 'HyperEstraierWrapper.o HyperEstraier_wrap.o' |
|
|
); |
|
72 |
|
|
73 |
After succesfull C<perl Makefile.pl>, you can compile and install it. |
There was awaful long procedure about installing perl C bindings, but it's all gone now. |
|
|
|
|
$ make |
|
|
$ sudo make install |
|
74 |
|
|
75 |
=head3 CPAN modules |
=head3 CPAN modules |
76 |
|
|
79 |
=over 4 |
=over 4 |
80 |
|
|
81 |
=item File::Pid |
=item File::Pid |
82 |
|
=item File::Which |
83 |
|
=item File::Path |
84 |
|
=item File::Slurp |
85 |
|
=item Search::Estraier |
86 |
|
|
87 |
=item Spreadsheet::WriteExcel |
=item Spreadsheet::WriteExcel |
88 |
|
|
89 |
=item Term::Menus |
=item Term::Menus |
90 |
=item XML::Writer |
=item XML::Writer |
91 |
|
=item Algorithm::Diff |
92 |
|
=item Archive::Tar::Stream |
93 |
|
|
94 |
=back |
=back |
95 |
|
|
98 |
|
|
99 |
Easiest way to install them is using C<cpan> shell. |
Easiest way to install them is using C<cpan> shell. |
100 |
|
|
101 |
$ sudo cpan File::Pid Spreadsheet::WriteExcel |
$ sudo cpan File::Pid Spreadsheet::WriteExcel ... |
102 |
|
|
103 |
=head1 Creation of initial database |
=head1 Creation of initial database |
104 |
|
|
169 |
|
|
170 |
=back |
=back |
171 |
|
|
172 |
|
=head1 Troubleshoting |
173 |
|
|
174 |
|
=head2 md5sum problems on Debian |
175 |
|
|
176 |
|
If you are running Debian stable and expiriencing error message like |
177 |
|
|
178 |
|
-: No such file or directory |
179 |
|
|
180 |
|
your C<md5sum> comes from C<coreutils> (which doesn't know how to handle C<-> |
181 |
|
as input) as opposed to C<md5sum> which comes with C<textutils> (which does). |
182 |
|
|
183 |
|
Fix is simple, correct md5sum is allready installed, you just have to do: |
184 |
|
|
185 |
|
sudo cp /usr/bin/md5sum.textutils /usr/bin/md5sum |
186 |
|
|
187 |
=head1 Related projects |
=head1 Related projects |
188 |
|
|