Search Perl::

 

Welcome 216.73.216.152, local time is: 2025-10-05 08:11:09 -0700   

Installing a Perl module

What to do once you've downloaded a Module from the CPAN Network, or somewhere else

You have a file ending in .tar.gz, or .zip. You know there's a tasty module inside. But how to install it, so you can actually make use of it?

Here are steps you must now take:

Here's how to perform each step for each operating system. This is not a substitute for reading the README and INSTALL files that should have come with your module!

Also note that these instructions are tailored for installing the module into your system's repository of Perl modules. But you may also install modules into any directory you wish. For instance, where I say perl Makefile.PL, you can substitute perl Makefile.PL PREFIX=/my/perl_directory – where PREFIX=/my/perl_directory represents an additional, or alternate path you use to install the modules into. Then you'll be able to use the modules from your Perl programs with use lib "/my/perl_directory/lib/site_perl"; or sometimes just use "/my/perl_directory";.

  1. If you're on UNIX
    1. DECOMPRESS/UNPACK
      Decompress the file with tar -xvzf yourmodule.tar.gz
      All modern UNIX, and UNIX-like Operating Systems install tar, and GNU gzip as part of their base system. But should your system not have gzip, you can get gzip from ftp://prep.ai.mit.edu/pub/gnu.
    2. BUILD
      Go into the newly-created directory and type:
      perl Makefile.PL
      make
      make test
    3. INSTALL
      While you're still in that directory, type:
      make install

      Make sure you have the appropriate permissions to install the module in your Perl 5 library directory. In many cases, you'll need to be root.

      That's all you need to do on UNIX, or UNIX-like systems with dynamic linking.

      Most UNIX systems have dynamic linking – if yours doesn't, or if for another reason you have a statically-linked perl, and the module requires compilation, you'll need to build a new Perl binary that includes the module. Again, you'll probably need to be root.

    NOTE: You can also use Andreas König's CPAN module to automate the entire process, from DECOMPRESS through INSTALL.
  2. If you're running Windows 95 or NT with the ActiveState port of Perl,
    1. DECOMPRESS/UNPACK
      You can use WinZip (shareware) to decompress and unpack modules.
    2. BUILD
      Does the module require compilation (i.e. does it have files that end in .xs, .c, .h, .y, .cc, .cxx, or .C)? If it does, you're on your own. You can try compiling it yourself if you have a C compiler. If you're successful, consider uploading the resulting binary to the CPAN for others to use. If it doesn't, go to INSTALL.
    3. INSTALL
      Copy the module into your Perl's lib directory. That'll be one of the directories you see when you type perl -e "print qq(@INC)".
  3. If you're running Windows 95 or NT with the core Windows distribution of Perl,
    1. DECOMPRESS/UNPACK

      When you download the module, make sure it ends in either .tar.gz, or .zip. Windows browsers sometimes download .tar.gz files as _tar.tar, because early versions of Windows prohibited more than one dot in a filename.

      You can use WinZip (shareware) to decompress and unpack modules.

      Or, you can use InfoZIP's unzip utility to uncompress .zip files;
      type:
      unzip yourmodule.zip
      in your shell.

      Or, if you have a working tar and gzip, you can type
      gzip -cd yourmodule.tar.gz | tar xvf -
      in the shell to decompress yourmodule.tar.gz. This will UNPACK your module as well.

    2. BUILD

      Go into the newly-created directory and type:
      perl Makefile.PL
      dmake
      dmake test

      Depending on your perl configuration, dmake might not be available. You might have to substitute whatever perl -V:make says. (Usually, that will be nmake or make.)

    3. INSTALL
      While you're still in that directory, type:
      dmake install – substituting dmake for for the version of make available on your system
  4. If you're using a Macintosh – for Mac OSX, see: UNIX
    1. DECOMPRESS
      You can either use MacGzip (freeware),

      or Stuffit Expander in combination with DropStuff with Expander Enhancer (shareware).
    2. UNPACK
      If you're using DropStuff or Stuffit, you can just extract the tar archive. Otherwise, you can use suntar (freeware).
    3. BUILD
      Does the module require compilation?

      • If it does,

        Overview: You need MPW and a combination of new and old CodeWarrior compilers for MPW and libraries. Makefiles created for building under MPW use the Metrowerks compilers. It's quite possible to build without other compilers, but it has not been done successfully, to our knowledge. Reading the documentation in MacPerl: Power And Ease on porting/building extensions, or find an existing precompiled binary. You might also condider hiring someone to build it for you.
        Another possibility would be to ask someone on the mac-perl mailing list to build it for you. To subscribe to the mac-perl mailing list, send mail to mac-perl-request@iis.ee.ethz.ch.

      • If the module doesn't require compilation, go to INSTALL.

    4. INSTALL
      Make sure the newlines for the modules are in Mac format, not UNIX format. Move the files manually into the correct folders.

      Move the files to their final destination: This will most likely be in $ENV{MACPERL}site_lib: (i.e., HD:MacPerl folder:site_lib:). You can add new paths to the default @INC in the Preferences menu item in the MacPerl application ($ENV{MACPERL}site_lib: is added automagically). Create whatever directory structures are required (i.e., for Some::Module, create $ENV{MACPERL}site_lib:Some: and put Module.pm in that directory).
      Run the following script (or something like it):
      	#!perl -w
      	use AutoSplit;
      	my $dir = "${MACPERL}site_perl";
      	autosplit("$dir:Some:Module.pm", "$dir:auto", 0, 1, 1);
      Eventually there should be a way to automate the installation process; some solutions exist, but none are ready for the general public yet.
  5. If you're on DOS (the DJGPP port),
    1. DECOMPRESS/UNPACK
      djtarx will both uncompress and unpack.
    2. BUILD
      Go into the newly-created directory and type:
      perl Makefile.PL
      make
      make test
      You will need the packages mentioned in Readme.dos in the Perl distribution.
    3. INSTALL
      While still in that directory, type:
      make install
      You will need the packages mentioned in Readme.dos in the Perl distribution.
  6. If you're on OS/2,
    Get the EMX development suite and gzip/tar, from either Hobbes or LEO, and then follow the instructions for UNIX.
  7. If you're on VMS,
    When downloading from CPAN, save your file with a .tgz extension instead of .tar.gz. All other periods in the filename should be replaced with underscores. For example, Your-Module-1.33.tar.gz should be saved as Your-Module-1_33.tgz.
    1. DECOMPRESS
      Type:
      gzip -d Your-Module.tgz

      or, for zipped modules, type:

      unzip Your-Module.zip


      Executables for gzip, zip, and VMStar:
      Alphas, Vaxen.
      gzip and tar are also available at ftp://ftp.digital.com/pub/VMS.

      Note that GNU's gzip/gunzip is not the same as Info-ZIP's zip/unzip package. The former is a simple compression tool; the latter permits creation of multi-file archives.
    2. UNPACK
      If you're using VMStar:
      VMStar xf Your-Module.tar

      Or, if you're fond of VMS command syntax:
      tar/extract/verbose Your_Module.tar
    3. BUILD
      Make sure you have MMS (from Digital) or MMK (freeware from MadGoat). Then type this to create the DESCRIP.MMS for th emodule:
      perl Makefile.PL

      Now you're ready to build:
      mms
      mms test

      Substitute mmk for mms above if you're using MMK.
    4. INSTALL
      Type:
      mms install

      Substitute mmk for mms above if you're using MMK.
  8. If you're on MVS, Introduce the .tar.gz file into an HFS as binary; don't translate from ASCII to EBCDIC.
    1. DECOMPRESS
      Decompress the file with
      gzip -d yourmodule.tar.gz
      You can get gzip from http://www.s390.ibm.com/products/oe/bpxqp1.html.

    2. UNPACK
      Unpack the result with:
      pax -o to=IBM-1047,from=ISO8859-1 -r < yourmodule.tar
      The BUILD and INSTALL steps are identical to those for UNIX. Some modules generate Makefiles that work better with GNU make, which is available from http://www.mks.com/s390/gnu/index.htm.

See also:

Perl: uninstalling perl modules safely

Fun with perl: Convert an image to html text with image2html!

Perl docs

Perl module documentation

Perl Functions

Perl: Get perlPerl: use perl now! (instructions, & links to Perl downloads)

Additional docs for UNIX, and UNIX-like systems - includes applications