1App::cpanminus(3) User Contributed Perl Documentation App::cpanminus(3)
2
3
4
6 App::cpanminus - get, unpack, build and install modules from CPAN
7
9 cpanm Module
10
11 Run "cpanm -h" or "perldoc cpanm" for more options.
12
14 cpanminus is a script to get, unpack, build and install modules from
15 CPAN and does nothing else.
16
17 It's dependency free (can bootstrap itself), requires zero
18 configuration, and stands alone. When running, it requires only 10MB of
19 RAM.
20
22 There are several ways to install cpanminus to your system.
23
24 Package management system
25 There are Debian packages, RPMs, FreeBSD ports, and packages for other
26 operation systems available. If you want to use the package management
27 system, search for cpanminus and use the appropriate command to
28 install. This makes it easy to install "cpanm" to your system without
29 thinking about where to install, and later upgrade.
30
31 Installing to system perl
32 You can also use the latest cpanminus to install cpanminus itself:
33
34 curl -L http://cpanmin.us | perl - --sudo App::cpanminus
35
36 This will install "cpanm" to your bin directory like "/usr/local/bin"
37 (unless you configured "INSTALL_BASE" with local::lib), so you probably
38 need the "--sudo" option.
39
40 Installing to local perl (perlbrew)
41 If you have perl in your home directory, which is the case if you use
42 tools like perlbrew, you don't need the "--sudo" option, since you're
43 most likely to have a write permission to the perl's library path. You
44 can just do:
45
46 curl -L http://cpanmin.us | perl - App::cpanminus
47
48 to install the "cpanm" executable to the perl's bin path, like
49 "~/perl5/perlbrew/bin/cpanm".
50
51 Downloading the standalone executable
52 You can also copy the standalone executable to whatever location you'd
53 like.
54
55 cd ~/bin
56 curl -LO http://xrl.us/cpanm
57 chmod +x cpanm
58 # edit shebang if you don't have /usr/bin/env
59
60 This just works, but be sure to grab the new version manually when you
61 upgrade because "--self-upgrade" might not work for this.
62
64 perl 5.8 or later.
65
66 · 'tar' executable (bsdtar or GNU tar version 1.22 are recommended)
67 or Archive::Tar to unpack files.
68
69 · C compiler, if you want to build XS modules.
70
71 · make
72
73 · Module::Build (core in 5.10)
74
76 Another CPAN installer?
77 OK, the first motivation was this: the CPAN shell runs out of memory
78 (or swaps heavily and gets really slow) on Slicehost/linode's most
79 affordable plan with only 256MB RAM. Should I pay more to install perl
80 modules from CPAN? I don't think so.
81
82 But why a new client?
83 First of all, let me be clear that CPAN and CPANPLUS are great tools
84 I've used for literally years (you know how many modules I have on
85 CPAN, right?). I really respect their efforts of maintaining the most
86 important tools in the CPAN toolchain ecosystem.
87
88 However, for less experienced users (mostly from outside the Perl
89 community), or even really experienced Perl developers who know how to
90 shoot themselves in their feet, setting up the CPAN toolchain often
91 feels like yak shaving, especially when all they want to do is just
92 install some modules and start writing code.
93
94 Zero-conf? How does this module get/parse/update the CPAN index?
95 It queries the CPAN Meta DB site at <http://cpanmetadb.plackperl.org/>.
96 The site is updated at least every hour to reflect the latest changes
97 from fast syncing mirrors. The script then also falls back to query the
98 module at <http://metacpan.org/> using its wonderful API.
99
100 Upon calling these API hosts, cpanm (1.6004 or later) will send the
101 local perl versions to the server in User-Agent string by default. You
102 can turn it off with "--no-report-perl-version" option. Read more about
103 the option with cpanm, and read more about the privacy policy about
104 this data collection at <http://cpanmetadb.plackperl.org/#privacy>
105
106 Fetched files are unpacked in "~/.cpanm" and automatically cleaned up
107 periodically. You can configure the location of this with the
108 "PERL_CPANM_HOME" environment variable.
109
110 Where does this install modules to? Do I need root access?
111 It installs to wherever ExtUtils::MakeMaker and Module::Build are
112 configured to (via "PERL_MM_OPT" and "PERL_MB_OPT"). So if you're using
113 local::lib, then it installs to your local perl5 directory. Otherwise
114 it installs to the site_perl directory that belongs to your perl.
115
116 cpanminus at a boot time checks whether you have configured local::lib,
117 or have the permission to install modules to the site_perl directory.
118 If neither, it automatically sets up local::lib compatible installation
119 path in a "perl5" directory under your home directory. To avoid this,
120 run the script as the root user, with "--sudo" option or with
121 "--local-lib" option.
122
123 cpanminus can't install the module XYZ. Is it a bug?
124 It is more likely a problem with the distribution itself. cpanminus
125 doesn't support or is known to have issues with distributions like as
126 follows:
127
128 · Tests that require input from STDIN.
129
130 · Tests that might fail when "AUTOMATED_TESTING" is enabled.
131
132 · Modules that have invalid numeric values as VERSION (such as
133 "1.1a")
134
135 These failures can be reported back to the author of the module so that
136 they can fix it accordingly, rather than me.
137
138 Does cpanm support the feature XYZ of CPAN and CPANPLUS?
139 Most likely not. Here are the things that cpanm doesn't do by itself.
140 And it's a feature - you got that from the name minus, right?
141
142 If you need these features, use CPAN, CPANPLUS or the standalone tools
143 that are mentioned.
144
145 · CPAN testers reporting
146
147 · Building RPM packages from CPAN modules
148
149 · Listing the outdated modules that needs upgrading. See
150 App::cpanoutdated
151
152 · Showing the changes of the modules you're about to upgrade. See
153 cpan-listchanges
154
155 · Patching CPAN modules with distroprefs.
156
157 See cpanm or "cpanm -h" to see what cpanminus can do :)
158
160 Copyright 2010- Tatsuhiko Miyagawa
161
162 The standalone executable contains the following modules embedded.
163
164 CPAN::DistnameInfo Copyright 2003 Graham Barr
165 Parse::CPAN::Meta Copyright 2006-2009 Adam Kennedy
166 local::lib Copyright 2007-2009 Matt S Trout
167 HTTP::Tiny Copyright 2011 Christian Hansen
168 Module::Metadata Copyright 2001-2006 Ken Williams. 2010 Matt S Trout
169 version Copyright 2004-2010 John Peacock
170 JSON::PP Copyright 2007-2011 by Makamaka Hannyaharamitu
171 CPAN::Meta, CPAN::Meta::Requirements Copyright (c) 2010 by David Golden
172 and Ricardo Signes
173 CPAN::Meta::YAML Copyright 2010 Adam Kennedy
174 File::pushd Copyright 2012 David Golden
175
177 This software is licensed under the same terms as Perl.
178
180 CONTRIBUTORS
181 Patches and code improvements were contributed by:
182
183 Goro Fuji, Kazuhiro Osawa, Tokuhiro Matsuno, Kenichi Ishigaki, Ian
184 Wells, Pedro Melo, Masayoshi Sekimura, Matt S Trout (mst), squeeky,
185 horus and Ingy dot Net.
186
187 ACKNOWLEDGEMENTS
188 Bug reports, suggestions and feedbacks were sent by, or general
189 acknowledgement goes to:
190
191 Jesse Vincent, David Golden, Andreas Koenig, Jos Boumans, Chris
192 Williams, Adam Kennedy, Audrey Tang, J. Shirley, Chris Prather, Jesse
193 Luehrs, Marcus Ramberg, Shawn M Moore, chocolateboy, Chirs Nehren,
194 Jonathan Rockway, Leon Brocard, Simon Elliott, Ricardo Signes, AEvar
195 Arnfjord Bjarmason, Eric Wilhelm, Florian Ragwitz and xaicron.
196
198 <http://github.com/miyagawa/cpanminus> - source code repository, issue
199 tracker
200 <irc://irc.perl.org/#toolchain> - discussions about Perl toolchain. I'm
201 there.
202
204 This software is provided "as-is," without any express or implied
205 warranty. In no event shall the author be held liable for any damages
206 arising from the use of the software.
207
209 CPAN CPANPLUS pip
210
211
212
213perl v5.16.3 2013-06-19 App::cpanminus(3)