Skip to content
monken edited this page Aug 5, 2011 · 28 revisions

If you want to run MetaCPAN locally (why not?), here are a few tips to get you started:

Install ElasticSearch

You can download ElasticSearch at http://www.elasticsearch.org/download/. Make sure you download the latest version. After you unzip it, run the following command:

bin/elasticsearch -f

If you get a "Can't start up: not enough memory" error when trying to start ElasticSearch, you likely need to update your JRE. On Ubuntu:

# fixes "not enough memory" errors
sudo apt-get install openjdk-6-jre

Install cpanminus

If you haven't installed cpanminus already, see https://metacpan.org/module/App::cpanminus

Clone the Git Repositories

git clone https://github.com/CPAN-API/cpan-api.git
cd cpan-api
git submodule init
git submodule update

Create a new file metacpan_server_local.conf having following content:

cpan /full/path/to/cpan

Install Dependencies

dzil authordeps  | cpanm
dzil listdeps  | cpanm

Create the ElasticSearch Index

bin/metacpan mapping

Begin Indexing Your Modules

bin/metacpan release /path/to/cpan/authors/id/

You should note that you can index either your CPAN mirror or a minicpan mirror. You can even index just parts of a mirror:

bin/metacpan release /path/to/cpan/authors/id/{A,B}

Tag the Latest Releases

bin/metacpan latest

Index Author Data

bin/metacpan author --cpan /path/to/cpan/

Note that minicpan doesn't provide the 00whois.xml file which is used to generate the index; you will have to download it manually (it is in the authors/ directory) in order to index authors. It also doesn't include author.json files, so that data will also be missing unless you get it from somewhere else.

Set Up Proxy in Front of ElasticSearch

Start API server on port 5000

plackup

Notes

For a full list of options:

bin/metacpan release --help

EV may seem to take forever to install because the test suite hangs, so you may have to install it without first running the test suite:

cpanm --notest EV

Meta

Clone this wiki locally