fix outdated URLs (from Michael G Schwern)
[p5sagit/p5-mst-13.2.git] / pod / perlmodinstall.pod
CommitLineData
fb9cefb4 1=head1 NAME
2
3perlmodinstall - Installing CPAN Modules
4
5=head1 DESCRIPTION
6
7You can think of a module as the fundamental unit of reusable Perl
19799a22 8code; See L<perlmod> for details. Whenever anyone creates a chunk
9of Perl code that they think will be useful to the world, they
10register as a Perl developer at
11http://www.perl.com/CPAN/modules/04pause.html so that they can then
12upload their code to CPAN. CPAN is the Comprehensive Perl Archive
13Network and can be accessed at http://www.perl.com/CPAN/, or searched
14via http://cpan.perl.com/ and
15http://theory.uwinnipeg.ca/mod_perl/cpan-search.pl .
fb9cefb4 16
17This documentation is for people who want to download CPAN modules
18and install them on their own computer.
19
20=head2 PREAMBLE
21
19799a22 22You have a file ending in F<.tar.gz> (or, less often, F<.zip>).
23You know there's a tasty module inside. You must now take four
24steps:
fb9cefb4 25
26=over 5
27
28=item B<DECOMPRESS> the file
637e9122 29
fb9cefb4 30=item B<UNPACK> the file into a directory
637e9122 31
fb9cefb4 32=item B<BUILD> the module (sometimes unnecessary)
637e9122 33
fb9cefb4 34=item B<INSTALL> the module.
35
36=back
37
38Here's how to perform each step for each operating system. This is
39I<not> a substitute for reading the README and INSTALL files that
40might have come with your module!
41
42Also note that these instructions are tailored for installing the
43module into your system's repository of Perl modules. But you can
44install modules into any directory you wish. For instance, where I
45say C<perl Makefile.PL>, you can substitute C<perl
46Makefile.PL PREFIX=/my/perl_directory> to install the modules
47into C</my/perl_directory>. Then you can use the modules
48from your Perl programs with C<use lib
19799a22 49"/my/perl_directory/lib/site_perl"> or sometimes just C<use
50"/my/perl_directory">.
fb9cefb4 51
52=over 4
53
54=item *
55
56B<If you're on Unix,>
57
58You can use Andreas Koenig's CPAN module
19799a22 59(which comes standard with Perl, or can itself be downloaded
60from http://www.perl.com/CPAN/modules/by-module/CPAN)
fb9cefb4 61to automate the following steps, from DECOMPRESS through INSTALL.
62
63A. DECOMPRESS
64
65Decompress the file with C<gzip -d yourmodule.tar.gz>
66
67You can get gzip from ftp://prep.ai.mit.edu/pub/gnu.
68
69Or, you can combine this step with the next to save disk space:
70
71 gzip -dc yourmodule.tar.gz | tar -xof -
72
73B. UNPACK
74
75Unpack the result with C<tar -xof yourmodule.tar>
76
77C. BUILD
78
79Go into the newly-created directory and type:
80
81 perl Makefile.PL
82 make
83 make test
84
85D. INSTALL
86
87While still in that directory, type:
88
89 make install
90
19799a22 91Make sure you have appropriate permissions to install the module
fb9cefb4 92in your Perl 5 library directory. Often, you'll need to be root.
93
94That's all you need to do on Unix systems with dynamic linking.
19799a22 95Most Unix systems have dynamic linking--if yours doesn't, or if for
96another reason you have a statically-linked perl, I<and> the
fb9cefb4 97module requires compilation, you'll need to build a new Perl binary
98that includes the module. Again, you'll probably need to be root.
99
100=item *
101
102B<If you're running Windows 95 or NT with the ActiveState port of Perl>
103
104 A. DECOMPRESS
105
19799a22 106You can use the shareware B<Winzip> program ( http://www.winzip.com ) to
fb9cefb4 107decompress and unpack modules.
108
109 B. UNPACK
110
111If you used WinZip, this was already done for you.
112
113 C. BUILD
114
115Does the module require compilation (i.e. does it have files
116that end in .xs, .c, .h, .y, .cc, .cxx, or .C)? If it does, you're on
117your own. You can try compiling it yourself if you have a C compiler.
19799a22 118If you're successful, consider uploading the resulting binary to
fb9cefb4 119CPAN for others to use. If it doesn't, go to INSTALL.
120
121 D. INSTALL
122
123Copy the module into your Perl's I<lib> directory. That'll be one
124of the directories you see when you type
125
126 perl -e 'print "@INC"'
127
128=item *
129
130B<If you're running Windows 95 or NT with the core Windows distribution of Perl,>
131
132 A. DECOMPRESS
133
134When you download the module, make sure it ends in either
19799a22 135F<.tar.gz> or F<.zip>. Windows browsers sometimes
fb9cefb4 136download C<.tar.gz> files as C<_tar.tar>, because
137early versions of Windows prohibited more than one dot in a filename.
138
19799a22 139You can use the shareware B<WinZip> program ( http://www.winzip.com ) to
fb9cefb4 140decompress and unpack modules.
141
142Or, you can use InfoZip's C<unzip> utility (
6cecdcac 143http://www.cdrom.com/pub/infozip/ ) to uncompress C<.zip> files; type
144C<unzip yourmodule.zip> in your shell.
fb9cefb4 145
146Or, if you have a working C<tar> and C<gzip>, you can
147type
148
149 gzip -cd yourmodule.tar.gz | tar xvf -
150
151in the shell to decompress C<yourmodule.tar.gz>. This will
152UNPACK your module as well.
153
154 B. UNPACK
155
19799a22 156The methods in DECOMPRESS will have done this for you.
fb9cefb4 157
158 C. BUILD
159
160Go into the newly-created directory and type:
161
162 perl Makefile.PL
163 dmake
164 dmake test
165
166Depending on your perl configuration, C<dmake> might not be
167available. You might have to substitute whatever C<perl
168-V:make> says. (Usually, that will be C<nmake> or
169C<make>.)
170
171 D. INSTALL
172
173While still in that directory, type:
174
175 dmake install
176
177=item *
178
179B<If you're using a Macintosh,>
180
181A. DECOMPRESS
182
be94a901 183In general, all Macintosh decompression utilities mentioned here
184can be found in the Info-Mac Hyperarchive
185( http://hyperarchive.lcs.mit.edu/HyperArchive.html ).
186Specificly the "Commpress & Translate" listing
187( http://hyperarchive.lcs.mit.edu/HyperArchive/Abstracts/cmp/HyperArchive.html ).
188
189
19799a22 190You can either use the shareware B<StuffIt Expander> program
6cecdcac 191( http://www.aladdinsys.com/expander/ )
be94a901 192in combination with I<DropStuff with Expander Enhancer>
6cecdcac 193( http://www.aladdinsys.com/dropstuff/ )
19799a22 194or the freeware B<MacGzip> program (
fb9cefb4 195http://persephone.cps.unizar.es/general/gente/spd/gzip/gzip.html ).
196
be94a901 197
fb9cefb4 198B. UNPACK
199
200If you're using DropStuff or Stuffit, you can just extract the tar
6cecdcac 201archive. Otherwise, you can use the freeware B<suntar> or I<Tar> (
202http://hyperarchive.lcs.mit.edu/HyperArchive/Archive/cmp/ ).
fb9cefb4 203
204C. BUILD
205
206Does the module require compilation?
207
2081. If it does,
209
210Overview: You need MPW and a combination of new and old CodeWarrior
211compilers for MPW and libraries. Makefiles created for building under
19799a22 212MPW use Metrowerks compilers. It's most likely possible to build
fb9cefb4 213without other compilers, but it has not been done successfully, to our
19799a22 214knowledge. Read the documentation in I<MacPerl: Power and Ease> (
fb9cefb4 215http://www.ptf.com/macperl/ ) on porting/building extensions, or find
216an existing precompiled binary, or hire someone to build it for you.
217
218Or, ask someone on the mac-perl mailing list (mac-perl@iis.ee.ethz.ch)
219to build it for you. To subscribe to the mac-perl mailing list, send
220mail to mac-perl-request@iis.ee.ethz.ch.
221
2222. If the module doesn't require compilation, go to INSTALL.
223
224D. INSTALL
225
226Make sure the newlines for the modules are in Mac format, not Unix format.
be94a901 227If they are not then you might have decompressed them incorrectly. Check
228your decompression and unpacking utilities settings to make sure they are
229translating text files properly.
7711098a 230
19799a22 231As a last resort, you can use the perl one-liner:
232
233 perl -i.bak -pe 's/(?:\015)?\012/\015/g' <filenames>
7711098a 234
235on the source files.
be94a901 236
fb9cefb4 237Move the files manually into the correct folders.
238
239Move the files to their final destination: This will
240most likely be in C<$ENV{MACPERL}site_lib:> (i.e.,
241C<HD:MacPerl folder:site_lib:>). You can add new paths to
242the default C<@INC> in the Preferences menu item in the
243MacPerl application (C<$ENV{MACPERL}site_lib:> is added
244automagically). Create whatever directory structures are required
245(i.e., for C<Some::Module>, create
246C<$ENV{MACPERL}site_lib:Some:> and put
247C<Module.pm> in that directory).
248
249Run the following script (or something like it):
250
251 #!perl -w
252 use AutoSplit;
253 my $dir = "${MACPERL}site_perl";
254 autosplit("$dir:Some:Module.pm", "$dir:auto", 0, 1, 1);
255
256Eventually there should be a way to automate the installation process; some
257solutions exist, but none are ready for the general public yet.
258
259=item *
260
261B<If you're on the DJGPP port of DOS,>
262
263 A. DECOMPRESS
264
265djtarx ( ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2/ )
266will both uncompress and unpack.
267
268 B. UNPACK
269
270See above.
271
272 C. BUILD
273
274Go into the newly-created directory and type:
275
276 perl Makefile.PL
277 make
278 make test
279
19799a22 280You will need the packages mentioned in F<README.dos>
fb9cefb4 281in the Perl distribution.
282
283 D. INSTALL
284
285While still in that directory, type:
286
287 make install
288
19799a22 289You will need the packages mentioned in F<README.dos> in the Perl distribution.
fb9cefb4 290
291=item *
292
293B<If you're on OS/2,>
294
295Get the EMX development suite and gzip/tar, from either Hobbes (
296http://hobbes.nmsu.edu ) or Leo ( http://www.leo.org ), and then follow
297the instructions for Unix.
298
299=item *
300
301B<If you're on VMS,>
302
19799a22 303When downloading from CPAN, save your file with a F<.tgz>
304extension instead of F<.tar.gz>. All other periods in the
fb9cefb4 305filename should be replaced with underscores. For example,
306C<Your-Module-1.33.tar.gz> should be downloaded as
307C<Your-Module-1_33.tgz>.
308
309A. DECOMPRESS
310
311Type
312
313 gzip -d Your-Module.tgz
314
315or, for zipped modules, type
316
317 unzip Your-Module.zip
318
319Executables for gzip, zip, and VMStar ( Alphas:
6cecdcac 320http://www.openvms.digital.com/freeware/000TOOLS/ALPHA/ and Vaxen:
321http://www.openvms.digital.com/freeware/000TOOLS/VAX/ ).
fb9cefb4 322
323gzip and tar
324are also available at ftp://ftp.digital.com/pub/VMS.
325
326Note that GNU's gzip/gunzip is not the same as Info-ZIP's zip/unzip
327package. The former is a simple compression tool; the latter permits
328creation of multi-file archives.
329
330B. UNPACK
331
332If you're using VMStar:
333
334 VMStar xf Your-Module.tar
335
336Or, if you're fond of VMS command syntax:
337
338 tar/extract/verbose Your_Module.tar
339
340C. BUILD
341
342Make sure you have MMS (from Digital) or the freeware MMK ( available from MadGoat at http://www.madgoat.com ). Then type this to create the
343DESCRIP.MMS for the module:
344
345 perl Makefile.PL
346
347Now you're ready to build:
348
349 mms
350 mms test
351
352Substitute C<mmk> for C<mms> above if you're using MMK.
353
354D. INSTALL
355
356Type
357
358 mms install
359
360Substitute C<mmk> for C<mms> above if you're using MMK.
361
362=item *
363
364B<If you're on MVS>,
365
19799a22 366Introduce the F<.tar.gz> file into an HFS as binary; don't translate from
fb9cefb4 367ASCII to EBCDIC.
368
369A. DECOMPRESS
370
371 Decompress the file with C<gzip -d yourmodule.tar.gz>
372
373 You can get gzip from
374 http://www.s390.ibm.com/products/oe/bpxqp1.html.
375
376B. UNPACK
377
378Unpack the result with
379
380 pax -o to=IBM-1047,from=ISO8859-1 -r < yourmodule.tar
381
382The BUILD and INSTALL steps are identical to those for Unix. Some
383modules generate Makefiles that work better with GNU make, which is
384available from http://www.mks.com/s390/gnu/index.htm.
385
386=back
387
388=head1 HEY
389
390If you have any suggested changes for this page, let me know. Please
391don't send me mail asking for help on how to install your modules.
392There are too many modules, and too few Orwants, for me to be able to
393answer or even acknowledge all your questions. Contact the module
394author instead, or post to comp.lang.perl.modules, or ask someone
395familiar with Perl on your operating system.
396
397=head1 AUTHOR
398
399Jon Orwant
400
401orwant@tpj.com
402
403The Perl Journal, http://tpj.com
404
405with invaluable help from Brandon Allbery, Charles Bailey, Graham
406Barr, Dominic Dunlop, Jarkko Hietaniemi, Ben Holzman, Tom Horsley,
407Nick Ing-Simmons, Tuomas J. Lukka, Laszlo Molnar, Chris Nandor, Alan
408Olsen, Peter Prymmer, Gurusamy Sarathy, Christoph Spalinger, Dan
409Sugalski, Larry Virden, and Ilya Zakharevich.
410
411July 22, 1998
412
413=head1 COPYRIGHT
414
415Copyright (C) 1998 Jon Orwant. All Rights Reserved.
416
417Permission is granted to make and distribute verbatim copies of this
418documentation provided the copyright notice and this permission notice are
419preserved on all copies.
420
421Permission is granted to copy and distribute modified versions of this
422documentation under the conditions for verbatim copying, provided also
423that they are marked clearly as modified versions, that the authors'
424names and title are unchanged (though subtitles and additional
425authors' names may be added), and that the entire resulting derived
426work is distributed under the terms of a permission notice identical
427to this one.
428
429Permission is granted to copy and distribute translations of this
430documentation into another language, under the above conditions for
431modified versions.
432