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 https://cpanmin.us | perl - --sudo App::cpanminus
35
36 This will install "cpanm" to your bin directory like "/usr/local/bin"
37 and you'll need the "--sudo" option to write to the directory, unless
38 you configured "INSTALL_BASE" with local::lib.
39
40 Installing to local perl (perlbrew, plenv etc.)
41 If you have perl in your home directory, which is the case if you use
42 tools like perlbrew or plenv, you don't need the "--sudo" option, since
43 you're most likely to have a write permission to the perl's library
44 path. You can just do:
45
46 curl -L https://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 -L https://cpanmin.us/ -o cpanm
57 chmod +x cpanm
58
59 This just works, but be sure to grab the new version manually when you
60 upgrade because "--self-upgrade" might not work with this installation
61 setup.
62
63 Troubleshoot: HTTPS warnings
64 When you run "curl" commands above, you may encounter SSL handshake
65 errors or certification warnings. This is due to your HTTP client
66 (curl) being old, or SSL certificates installed on your system needs to
67 be updated.
68
69 You're recommended to update the software or system if you can. If that
70 is impossible or difficult, use the "-k" option with curl.
71
73 perl 5.8.1 or later.
74
75 • 'tar' executable (bsdtar or GNU tar version 1.22 are recommended)
76 or Archive::Tar to unpack files.
77
78 • C compiler, if you want to build XS modules.
79
80 • make
81
82 • Module::Build (core in 5.10)
83
85 How does cpanm get/parse/update the CPAN index?
86 It queries the CPAN Meta DB site at <http://cpanmetadb.plackperl.org/>.
87 The site is updated at least every hour to reflect the latest changes
88 from fast syncing mirrors. The script then also falls back to query the
89 module at <http://metacpan.org/> using its search API.
90
91 Upon calling these API hosts, cpanm (1.6004 or later) will send the
92 local perl versions to the server in User-Agent string by default. You
93 can turn it off with "--no-report-perl-version" option. Read more about
94 the option with cpanm, and read more about the privacy policy about
95 this data collection at <http://cpanmetadb.plackperl.org/#privacy>
96
97 Fetched files are unpacked in "~/.cpanm" and automatically cleaned up
98 periodically. You can configure the location of this with the
99 "PERL_CPANM_HOME" environment variable.
100
101 Where does this install modules to? Do I need root access?
102 It installs to wherever ExtUtils::MakeMaker and Module::Build are
103 configured to (via "PERL_MM_OPT" and "PERL_MB_OPT").
104
105 By default, it installs to the site_perl directory that belongs to your
106 perl. You can see the locations for that by running "perl -V" and it
107 will be likely something under "/opt/local/perl/..." if you're using
108 system perl, or under your home directory if you have built perl
109 yourself using perlbrew or plenv.
110
111 If you've already configured local::lib on your shell, cpanm respects
112 that settings and modules will be installed to your local perl5
113 directory.
114
115 At a boot time, cpanminus checks whether you have already configured
116 local::lib, or have a permission to install modules to the site_perl
117 directory. If neither, i.e. you're using system perl and do not run
118 cpanm as a root, it automatically sets up local::lib compatible
119 installation path in a "perl5" directory under your home directory.
120
121 To avoid this, run "cpanm" either as a root user, with "--sudo" option,
122 or with "--local-lib" option.
123
124 cpanminus can't install the module XYZ. Is it a bug?
125 It is more likely a problem with the distribution itself. cpanminus
126 doesn't support or may have issues with distributions such as follows:
127
128 • Tests that require input from STDIN.
129
130 • Build.PL or Makefile.PL that prompts for input even when
131 "PERL_MM_USE_DEFAULT" is enabled.
132
133 • Modules that have invalid numeric values as VERSION (such as
134 "1.1a")
135
136 These failures can be reported back to the author of the module so that
137 they can fix it accordingly, rather than to cpanminus.
138
139 Does cpanm support the feature XYZ of CPAN and CPANPLUS?
140 Most likely not. Here are the things that cpanm doesn't do by itself.
141
142 If you need these features, use CPAN, CPANPLUS or the standalone tools
143 that are mentioned.
144
145 • CPAN testers reporting. See App::cpanminus::reporter
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 local::lib Copyright 2007-2009 Matt S Trout
166 HTTP::Tiny Copyright 2011 Christian Hansen
167 Module::Metadata Copyright 2001-2006 Ken Williams. 2010 Matt S Trout
168 version Copyright 2004-2010 John Peacock
169 JSON::PP Copyright 2007-2011 by Makamaka Hannyaharamitu
170 CPAN::Meta, CPAN::Meta::Requirements Copyright (c) 2010 by David Golden
171 and Ricardo Signes
172 CPAN::Meta::YAML Copyright 2010 Adam Kennedy
173 CPAN::Meta::Check Copyright (c) 2012 by Leon Timmermans
174 File::pushd Copyright 2012 David Golden
175 parent Copyright (c) 2007-10 Max Maischein
176 Parse::PMFile Copyright 1995 - 2013 by Andreas Koenig, Copyright 2013
177 by Kenichi Ishigaki
178 String::ShellQuote by Roderick Schertler
179
181 This software is licensed under the same terms as Perl.
182
184 CONTRIBUTORS
185 Patches and code improvements were contributed by:
186
187 Goro Fuji, Kazuhiro Osawa, Tokuhiro Matsuno, Kenichi Ishigaki, Ian
188 Wells, Pedro Melo, Masayoshi Sekimura, Matt S Trout (mst), squeeky,
189 horus and Ingy dot Net.
190
191 ACKNOWLEDGEMENTS
192 Bug reports, suggestions and feedbacks were sent by, or general
193 acknowledgement goes to:
194
195 Jesse Vincent, David Golden, Andreas Koenig, Jos Boumans, Chris
196 Williams, Adam Kennedy, Audrey Tang, J. Shirley, Chris Prather, Jesse
197 Luehrs, Marcus Ramberg, Shawn M Moore, chocolateboy, Chirs Nehren,
198 Jonathan Rockway, Leon Brocard, Simon Elliott, Ricardo Signes, AEvar
199 Arnfjord Bjarmason, Eric Wilhelm, Florian Ragwitz and xaicron.
200
202 <http://github.com/miyagawa/cpanminus> - source code repository, issue
203 tracker
204 <irc://irc.perl.org/#cpanm> - discussions about cpanm and its related
205 tools
206
208 This software is provided "as-is," without any express or implied
209 warranty. In no event shall the author be held liable for any damages
210 arising from the use of the software.
211
213 CPAN CPANPLUS pip
214
215
216
217perl v5.36.0 2023-01-19 App::cpanminus(3)