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