1App::cpm(3pm) User Contributed Perl Documentation App::cpm(3pm)
2
3
4
6 App::cpm - a fast CPAN module installer
7
9 > cpm install Module
10
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
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
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
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
81 Perl Advent Calendar 2015
82 <http://www.perladvent.org/2015/2015-12-02.html>
83
84 App::cpanminus
85
86 Menlo
87
88 Carton
89
90 Carmel
91
92
93
94perl v5.36.0 2022-07-22 App::cpm(3pm)