PPM Install

This is a brief note on how to install a Perl package from a local package file, under MS Windows. Your problem is that you want to install using Perl Package Manager (PPM), but you're behind a recalcitrant firewall put in place by your paranoid IT staff!

1. Have the correct files

Make sure that the .tar.gz file in your local directory is the correct one. If you're having problems, then view the zip contents using WinZip. It should contain one or more files with the suffixes .pm .pod .bs .dll .lib .exp and .pdp. There should also be a file (or several) called ".exists". (You may encounter similarly-named files which actually contain C source files and require compilation before being installed on your system. You don't want to use these unless you're a C expert).

At the time of writing, many packages (for Windows) could be found at:

http://ppm.ActiveState.com/PPMPackages/5.6plus/MSWin32-x86-multi-thread/

2. You need a PPD file that says where to find things

If you don't have the relevant PPD file for the package, you're in the poopy doo. Find one, or make one, using the following example:

<?xml version="1.0" encoding="UTF-8"?>
<SOFTPKG NAME="Bit-Vector" VERSION="6,3,0,0">
<TITLE>Bit-Vector</TITLE>
<ABSTRACT>Blah</ABSTRACT>
<AUTHOR>A Sometwit</AUTHOR>
<IMPLEMENTATION>
<CODEBASE HREF="file:///d|/downloads/cpan/Bit-Vector-6.3.tar.gz"></CODEBASE>
<INSTALL></INSTALL>
<UNINSTALL></UNINSTALL>
</IMPLEMENTATION>
</SOFTPKG>

The key line is the CODEBASE one, which must describe your local path. Note the obscure syntax --- "d|" instead of "d:", and the three slashes after "file:" The above example would be saved under the name "BitVector.ppd" --- don't do this in word, use a real text editor that won't mutilate the file, like WinEdt or simple old MS DOS Edit!

3. Be there!

Open up a DOS box, and change to the directory containing the .ppd file for the package you wish to install. Then run PPM from within DOS.

4. Setting the PPM local repository

Within PPM, type in:

set repository anyoldname ./
This is required to access local directory. Instead of "anyoldname" you can simply type in e.g. "a" (without the quotes). The "./" says "access the local directory". You can check for the success of the last statement by simply typing in:
set 
Then type in:
install package-name 
where the package name is e.g. Bit-Vector. And you're away (lots of lines should be written to the screen; otherwise be concerned that you have the wrong .tar.gz file).

Most of the relevant files should be written to directories with path names like:

\Perl\site\lib\what\
\Perl\site\lib\what\ever\
\Perl\site\lib\auto\what\ever\
For example, with Bit-Vector, the folders on my computer are:
\Perl\site\lib\Bit\
\Perl\site\lib\Bit\Vector\
\Perl\site\lib\auto\Bit\Vector\

Good luck.