Olaf Alders edited this page Aug 20, 2014 · 28 revisions

If you want to run MetaCPAN locally, we encourage you to start with a VM: Metacpan Developer VM

However, you may still find some info on this page to be of use when troubleshooting your VM.

Troubleshooting ElasticSearch

You can start ElasticSearch (ES) manually if you need to troubleshoot.

cd /opt/elasticsearch-0.20.2

If you are unable to access http://localhost:9200 (give it a few seconds) you should kill the elasticsearch process and run it in foreground to see the debug output

sudo 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

(Note: If you intend to try indexing a full mini-cpan, you may find that ElasticSearch wants to use more open filehandles than your system allows by default. This script can be used to start ES with the appropriate ulimit adjustment).

Run the test suite

The test suite accesses ElasticSearch on port 9900. The developer vm should have a dedicated test instance running in the background already, but if you want to run it manually:

sudo bin/elasticsearch -f -Des.http.port=9900

Then run the test suite:

cd /home/metacpan/
./bin/prove t

The test suite has to pass all tests.

Create the ElasticSearch Index

bin/metacpan mapping --delete

--delete will drop all indices first to clear the index from test data.

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 --cpan /path/to/cpan/

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.

wget -O /path/to/cpan/authors/00whois.xml

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


This will start a single-threaded test server. If you need extra performance, use starman instead.


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