This is the README for CPAN-Search-Lite, a set of modules for setting up a CPAN search system. It does not implement the full set of features (eg, multiple package versions) available on search.cpan.org. If a local CPAN mirror is available, the pod (and converted html) documentation will be extracted from the packages, as well as possible README/INSTALL/Changes/META.yml files. See http://mirrors.cpan.org/ for details on how you can mirror CPAN, or alternatively, the CPAN-Mini distribution under http://www.cpan.org/authors/id/R/RJ/RJBS/ for a way to set up a minimal CPAN mirror consisting of only the latest distributions.
As well as various Perl modules which are checked for when installing, MySQL is required; version 4 is needed for some text searching capabilities. See the INSTALL file for details on installation.
The included modules, with pod documentation, are:
CPAN::Search::Lite::Extract - extract files from distributions
CPAN::Search::Lite::Index - index and update the database CPAN::Search::Lite::Info - extract info from the CPAN indices CPAN::Search::Lite::PPM - get info from PPM repositories CPAN::Search::Lite::State - get the state of the current database CPAN::Search::Lite::Populate - populate the database CPAN::Search::Lite::Query - query the database CPAN::Search::Lite::Util - some common data structures CPAN::Search::Lite::Lang - some common language data structures CPAN::Search::Lite::DBI - database information
CPAN::Search::Lite::DBI::Index - database indexing methods CPAN::Search::Lite::DBI::Query - database querying methods
Language-specific modules, used for translating some terms, are found as CPAN::Search::Lite::Lang::. As well, some PPM::XML:: modules (from the PPM distribution of MURRAY, on CPAN) are included for extracting info from the PPM repositories.
Two different mod_perl interfaces to CPAN::Search::Lite::Query are included as Apache2::CPAN::Query and Apache2::CPAN::Search. Note that this requires a recent mod_perl-2 release candidate on CPAN, as well as Apache2::Request and friends from the libapreq2 distribution on CPAN. A cgi script and soap server examples are in the cgi-bin directory. A set of Template-Toolkit are found in the tt2/ subdirectory. Note that some manual editing of of the config file is needed to reflect local settings.
The bin/ subdirectory contains 3 scripts:
csl_index - create and subsequently update the database csl_query - an example script for performing local queries csl_soap - an example script for performing soap-based queries
The cgi-bin/ subdirectory contain 4 scripts:
search - a cgi interface to CPAN::Search::Lite::Query soap.cgi - a SOAP-based query form (see bin/csl_soap) docserver.cgi - the SOAP server for perldocs, for viewing remote pod documentation - see Pod::Perldocs, and the Pod-Perldocs project at http://sourceforge.net/projects/cpan-search/. ppminfo.cgi - the SOAP server for PPM::Make, used to get author, module, and distribution information - see PPM::Make, and the PPM-Make project at http://sourceforge.net/projects/cpan-search/.
SOAP::Lite is required in order to perform soap queries.
See the INSTALL file for directions on installation. Development takes place at the CPAN-Search-Lite project on SourceForge at http://sourceforge.net/projects/cpan-search/.
Support for presenting results in different languages in a web environment, based on the browser's language preference, is available - see the INSTALL file for a brief discussion on how to set this up. At present English, French, German, Italian, Portugese, and Spanish are available, although others can readily be added (this would involve providing translation of terms appearing in the language-specific modules of CPAN::Search::Lite::Lang::*, as well as providing the corresponding static page under htdocs/). Note that this does not include, in particular, translations of the abstracts of modules or distributions, nor of the accompanying documentation. The translations have been carried out with the help of French: Isabelle Hernandez <isa at panix.com>
Arnaud Assad <arnaud at underlands.org> German: Florian Greb <greb at inf.fu-berlin.de> Italian: Enrico Sorcinelli <bepi at modperl.it> Spanish: Joaquin Ferrero <explorer at joaquinferrero.com> Portugese: Alberto Simoes <albie at alfarrabio.di.uminho.pt> As this is still evolving, patches are welcome.
An implementation of this search engine is at http://cpan.uwinnipeg.ca/htdocs/faqs/cpan-search.html
Randy Kobes <email@example.com>