1App::cpm(3pm)         User Contributed Perl Documentation        App::cpm(3pm)
2
3
4

NAME

6       App::cpm - a fast CPAN module installer
7

SYNOPSIS

9         > cpm install Module
10

DESCRIPTION

12       cpm is a fast CPAN module installer, which uses Menlo in parallel.
13
14       Moreover cpm keeps the each builds of distributions in your home
15       directory, and reuses them later.  That is, if prebuilts are available,
16       cpm never builds distributions again, just copies the prebuilts into an
17       appropriate directory.  This is (of course!) inspired by Carmel.
18
19       For tutorial, check out App::cpm::Tutorial.
20

MOTIVATION

22       Why do we need a new CPAN client?
23
24       I used cpanm a lot, and it's totally awesome.
25
26       But if your Perl project has hundreds of CPAN module dependencies, then
27       it takes quite a lot of time to install them.
28
29       So my motivation is simple: I want to install CPAN modules as fast as
30       possible.
31
32   HOW FAST?
33       Just an example:
34
35         > time cpanm -nq -Lextlib Plack
36         real 0m47.705s
37
38         > time cpm install Plack
39         real 0m16.629s
40
41       This shows cpm is 3x faster than cpanm.
42

CAVEATS

44       eserte <https://github.com/skaji/cpm/issues/71> reported that the
45       parallel feature of cpm yielded a new type of failure for CPAN module
46       installation.  That is, if ModuleA implicitly requires ModuleB in
47       configure/build phase, and ModuleB is about to be installed, then it
48       may happen that the installation of ModuleA fails.
49
50       I can say that it hardly happens especially if you use a new Perl.
51       Moreover, for a workaround, cpm automatically retries the installation
52       if it fails.
53
54       I hope that if almost all CPAN modules are distributed with static
55       install enabled
56       <http://blogs.perl.org/users/shoichi_kaji1/2017/03/make-your-cpan-
57       module-static-installable.html>, then cpm will parallelize the
58       installation for these CPAN modules safely and we can eliminate this
59       new type of failure completely.
60

ROADMAP

62       If you all find cpm useful, then cpm should be merged into cpanm 2.0.
63       How exciting!
64
65       To merge cpm into cpanm, there are several TODOs:
66
67       ·   (DONE) Win32? - support platforms that do not have fork(2) system
68           call
69
70       ·   (DONE) Logging? - the parallel feature makes log really messy
71
72       Your feedback is highly appreciated.
73
75       Copyright 2015 Shoichi Kaji <skaji@cpan.org>
76
77       This library is free software; you can redistribute it and/or modify it
78       under the same terms as Perl itself.
79

COMMUNITY

81       <https://github.com/skaji/cpm>
82           Code repository and issue tracker
83
84       <https://gitter.im/skaji/cpm>
85           Chat room. I would like to hear your thoughts about CPAN clients
86           (not necessary about cpm)
87

SEE ALSO

89       Perl Advent Calendar 2015
90       <http://www.perladvent.org/2015/2015-12-02.html>
91
92       App::cpanminus
93
94       Menlo
95
96       Carton
97
98       Carmel
99
100
101
102perl v5.28.1                      2019-03-17                     App::cpm(3pm)
Impressum