Installing Test Modules

     

One of Perl's greatest strengths is the CPAN, an archive of thousands of reusuable code libraries ” generally called modules ”for almost any programming problem anyone has ever solved with Perl. This includes writing and running tests. Before you can use these modules, however, you must install them. Fortunately, Perl makes this easy.

How do I do that?

The best way to install modules from the CPAN is through a packaging system that can handle the details of finding, downloading, building, and installing the modules and their dependencies.

Through the CPAN shell

On Unix-like platforms (including Mac OS X) as well as on Windows platforms if you have a C compiler available, the easiest way to install modules is by using the CPAN module that comes with Perl. To install a new version of the Test::Simple distribution, launch the CPAN shell with the cpan script:

 %  cpan  cpan shell -- CPAN exploration and modules installation (v1.7601)     ReadLine support enabled     cpan>  install Test::Simple  Running install for module Test::Simple     Running make for M/MS/MSCHWERN/Test-Simple-0.54.tar.gz     <...>     Appending installation info to /usr/lib/perl5/5.8.6/powerpc-linux/perllocal.pod       /usr/bin/make install UNINST=1 -- OK 


Note: You can also run the CPAN shell manually with perl-MCPAN-e shell .

If Test::Simple had any dependencies (it doesn't), the shell would have detected them and tried to install them first.

If you haven't used the CPAN module before, it will prompt you for all sorts of information about your machine and network configuration as well as your installation preferences. Usually the defaults are fine.

Through PPM

By far, most Windows Perl installations use ActiveState's Active Perl distribution (http://www. activestate .com/Products/ActivePerl/), which includes the ppm utility to download, configure, build, and install modules. With ActivePerl installed, open a console window and type:

 C:\>  PPM  PPM>  install Test-Simple  


Note: ActivePerl also has distributions for Linux and Solaris, so these instructions also work there .

If the configuration is correct, ppm will download and install the latest Test::Simple distribution from ActiveState's repository.

If the module that you want isn't in the repository at all or if the version in the repository is older than you like, you have a few options.

First, you can search alternate repositories. See PodMaster's list of ppm repositories at http://crazyinsomniac.perlmonk.org/perl/misc/Repositories.pm. For example, to use dada's Win32 repository permanently, use the set repository command within ppm :

 C:\>  PPM  PPM>  set repository dada http://dada.perl.it/PPM  PPM>  set save  

By hand

If you want to install a pure-Perl module or are working on a platform that has an appropriate compiler, you can download and install the module by hand. First, find the appropriate module ”perhaps by browsing http://search.cpan.org/. Then download the file and extract it to its own directory:

 $  tar xvzf Test-Simple-0.54.tar.gz  Test-Simple-0.54/     <...> 


Note: To set up a compilation environment for Perl on Windows, consult the README.win32 file that ships with Perl .

Run the Makefile.PL program, and then issue the standard commands to build and test the module:

 $  perl Makefile.PL  Checking if your kit is complete...     Looks good     Writing Makefile for Test::Simple     $  make  cp lib/Test/Builder.pm blib/lib/Test/Builder.pm     cp lib/Test/Simple.pm blib/lib/Test/Simple.pm     $  make test  


Note: Be sure to download the file marked This Release, not the Latest Dev. Release, unless you plan to help develop the code .

If all of the tests pass, great! Otherwise, do what you can to figure out what failed, why, and if it will hurt you. (See "Running Tests" and "Interpreting Test Results," later in this chapter, for more information.) Finally, install the module by running make install (as root, if you're installing the module system-wide).

Makefile.PL uses a module called ExtUtils::MakeMaker to configure and install other modules. Some modules use Module::Build instead of ExtUtils::MakeMaker . There are two main differences from the installation standpoint. First, they require you to have Module::Build installed. Second, the installation commands are instead:

 $  perl Build.PL  $  perl Build  $  perl Build test  #  perl Build install  


Note: Unix users can use ./Build instead of perl Build in the instructions .

Otherwise, they work almost identically.

Windows users may need to install Microsoft's nmake to install modules by hand. Where Unix users type make , use the nmake command instead: nmake , nmake test , and nmake install .


Note: Consult the README.win32 file from the Perl source code distribution for links to nmake.exe .

What about...

Q:

How do I know the name to type when installing modules through PPM? I tried install Test-More , but it couldn't find it!

A:

Type the name of the distribution, not the module within the distribution. To find the name of the distribution, search http://search.cpan.org/ for the name of the module that you want. In this example, Test::More is part of the Test-Simple distribution. Remove the version and use that name within PPM.

Q:

I'm not an administrator on the machine, or I don't want to install the modules for everyone. How can I install a module to a specific directory?

A:

Set the PREFIX appropriately when installing the module. For example, a PREFIX of ~/perl/lib will install these modules to that directory (at least on Unix-like machines). Then set the PERL5LIB environment variable to point there or remember to use the lib pragma to add that directory to @INC in all programs in which you want to use your locally installed modules.


Note: See perlfaq8 to learn more about keeping your own module directory .

If you build the module by hand, run Makefile.PL like this:

 $  perl Makefile.PL PREFIX=~/perl/lib  


Note: MakeMaker 6.26 release will support the INSTALLBASE parameter; use that instead of PREFIX .

If you use CPAN , configure it to install modules to a directory under your control. Launch the CPAN shell with your own user account and follow the configuration questions. When it prompts for the PREFIX :

 Every Makefile.PL is run by perl in a separate process. Likewise we     run 'make' and 'make install' in processes. If you have any     parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass     to the calls, please specify them here.     If you don't understand this question, just press ENTER.     Parameters for the 'perl Makefile.PL' command?     Typical frequently used settings:         PREFIX=~/perl      non-root users (please see manual for more hints)         Your choice:  [  ] 

add a prefix to a directory where you'd like to store your own modules.

If the module uses Module::Build , pass the installbase parameter instead:

 $  perl Build.PL --installbase=~/perl  

See the documentation for ExtUtils::MakeMaker , CPAN , and Module::Build for more details.



Perl Testing. A Developer's Notebook
Perl Testing: A Developers Notebook
ISBN: 0596100922
EAN: 2147483647
Year: 2003
Pages: 107

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net