NAME
App::cpm - a fast CPAN module installer
SYNOPSIS
> cpm install Module
DESCRIPTION
cpm is a fast CPAN module installer, which uses Menlo in parallel.
Moreover cpm keeps the each builds of distributions in your home
directory, and reuses them later. That is, if prebuilts are available,
cpm never builds distributions again, just copies the prebuilts into an
appropriate directory. This is (of course!) inspired by Carmel.
For tutorial, check out App::cpm::Tutorial.
MOTIVATION
Why do we need a new CPAN client?
I used cpanm a lot, and it's totally awesome.
But if your Perl project has hundreds of CPAN module dependencies, then
it takes quite a lot of time to install them.
So my motivation is simple: I want to install CPAN modules as fast as
possible.
HOW FAST?
Just an example:
> time cpanm -nq -Lextlib Plack
real 0m47.705s
> time cpm install Plack
real 0m16.629s
This shows cpm is 3x faster than cpanm.
CAVEATS
eserte <https://github.com/skaji/cpm/issues/71> reported that the
parallel feature of cpm yielded a new type of failure for CPAN module
installation. That is, if ModuleA implicitly requires ModuleB in
configure/build phase, and ModuleB is about to be installed, then it
may happen that the installation of ModuleA fails.
I can say that it hardly happens especially if you use a new Perl.
Moreover, for a workaround, cpm automatically retries the installation
if it fails.
I hope that if almost all CPAN modules are distributed with static
install enabled
<http://blogs.perl.org/users/shoichi_kaji1/2017/03/make-your-cpan-module-static-installable.html>,
then cpm will parallelize the installation for these CPAN modules
safely and we can eliminate this new type of failure completely.
ROADMAP
If you all find cpm useful, then cpm should be merged into cpanm 2.0.
How exciting!
To merge cpm into cpanm, there are several TODOs:
* (DONE) Win32? - support platforms that do not have fork(2) system
call
* (DONE) Logging? - the parallel feature makes log really messy
Your feedback is highly appreciated.
COPYRIGHT AND LICENSE
Copyright 2015 Shoichi Kaji <skaji@cpan.org>
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
COMMUNITY
https://github.com/skaji/cpm
Code repository and issue tracker
https://gitter.im/skaji/cpm
Chat room. I would like to hear your thoughts about CPAN clients (not
necessary about cpm)
SEE ALSO
Perl Advent Calendar 2015
<http://www.perladvent.org/2015/2015-12-02.html>
App::cpanminus
Menlo
Carton
Carmel