NAME
CPANPLUS::Internals::Source::CPANMetaDB - CPAN Meta DB source implementation
VERSION
version 0.04
SYNOPSIS
# In the CPANPLUS shell
CPAN Terminal> s conf no_update 1
CPAN Terminal> s conf source_engine CPANPLUS::Internals::Source::CPANMetaDB
CPAN Terminal> s save
DESCRIPTION
CPANPLUS::Internals::Source::CPANMetaDB is a CPANPLUS source implementation.
It is deadly experimental.
Usually CPANPLUS retrieves the CPAN index files, extracts them and builds an in-memory index of every module listed on CPAN. As you can imagine, this is quite memory intensive.
This source implementation does things slightly different.
Instead of building an in-memory index, it queries the http://cpanmetadb.appspot.com/ website for module/distribution information as and when it is required by CPANPLUS.
The default CPANMetaDB site is http://cpanmetadb.appspot.com/.
You may set the PERL5_CPANMETADB_URL
environment variable to an alternative if you wish.
CAVEATS
There are some caveats.
As shown in the "SYNOPSIS" you must set the CPANPLUS configuration variable no_update
to a true value to use this source engine. This prevents CPANPLUS from attempting to update CPAN indexes.
Attempting to searches and getting a list of out of date modules in CPANPLUS are incredibly slow due the million or so web accesses that are incurred.
I have included two scripts in the examples
directory of this distribution that may be of use. installer.pl
does installation of modules and updater.pl
will find out of date modules and prompt to update them.
The CPAN Meta DB does not index authors. This means that this source engine has to cheat by populating the author_tree
with CPANPLUS::Module::Author::Fake objects. The only thing guaranteed to be accurate is the CPAN ID of authors. Looking up a module in the module_tree
will trigger a query to the CPAN Meta DB site, from which an author object will be created.
You cannot currently query an author. Because of the implementation you will get back a CPANPLUS::Module::Author::Fake object, but the source engine just assumes what you pass in as CPAN ID is valid.
If this is a problem have a look at CPANPLUS::Internals::Source::CPANIDX instead.
KUDOS
CPAN Meta DB was created by Tatsuhiko Miyagawa for App::cpanminus
SEE ALSO
http://cpanmetadb.appspot.com/
CPANPLUS::Internals::Source::CPANIDX
AUTHORS
Chris Williams <chris@bingosnet.co.uk>
Jos Boumans <kane@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Chris Williams, Jos Boumans, Roy Hooper and Adam Kennedy.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.