Compiling and installing perl 5.005 (and maintenance releases) on VMS 5.5-2 and up

This is a step-by-step guide to configuring, building, and installing perl 5.005 on VMS. If you're familiar with the build on older versions of perl, you'll find things have changed reasonably significantly.

We're going to assume that you already have the perl source archive from one of the archive sites, as well as all the tools you'll need to unpack and build. These include gzip, an un-tar program, MMS or MMK, and a C compiler. (You can head over to the One Stop Shopping page for links to these tools) The C compiler we're going to use is Dec C. Gnu C is an option if you're running on OpenVMS Vax, but you might need to fiddle with things to make it work. (Gnu C on Alpha's not yet supported. We're working on it...)

Create a directory to start from

You should be as close to the top of your directory tree as possible, as the build creates subdirectories five and six levels deep. I recommend creating a logical like this:

$ DEFINE/TRANS=(CONC,TERM) PERLSRC DISK:[DIR.DIR.DIR.]

where DISK:[DIR.DIR.DIR.] is where you're going to start the perl compilation. Then SET DEFAULT PERLSRC:[000000]

Get the archive on your VMS machine

There are a bunch of ways to do this, FTP being the easiest. The latest version of perl is always available on CPAN as latest.tar.gz. The rest of this page will assume the file is named latest.tgz on your VMS machine.

Uncompress the archive

$gzip -d latest.tgz

Unpack the archive

Untar the archive. We're assuming that the tar program is VMSTAR--yours may be different.

$ VMSTAR xvf latest.tar

You'll get a directory [.PERL5_005_02] with a whole slew of stuff in it.

SET DEFAULT into the perl source directory

$ SET DEFAULT [.PERL5_005_02]

Configure Perl

This is the step that'll be new for you old-timers. From the top of the source directory tree, type:

@CONFIGURE

and follow the prompts. While this page'll expand on the prompts later, right now you should only change the machine name, contact name, threading status (remember that threads are beta in 5.005) and memory allocator used. Leave the rest alone.

When you've answered all the questions, the configure script will then run through a series of tests to see what features you've got available from your C compiler, C runtime libraries, and VMS version.

Build Perl

Once the configure script's done checking out your system, it'll tell you what to do to build perl. This is normally a bare MMS or MMK. (This differs from previous versions that needed a /DESCRIP=[.VMS] and one or more macros. That's all taken care of by the build system now)

Test Perl

Once the build is done, test it. Issuing a MMK TEST (or MMS TEST if you're using MMS) will run the test suite. You may get an error on VMS_STDIO test 16. This is OK and ignorable. (A problem with the test. A fix will make it into the next release if all goes well)

Install Perl

Finally, you need to install perl. Create a directory somewhere where the installed package will live (this should not be the build directory) and define a rooted logical PERL_ROOT that points to it. (If you have another version of perl installed already, redefine it to point to the new location) Then issue the command MMK INSTALL (or MMS INSTALL) and things will be automatically moved to the correct place.

Perl does have one shareable image, PERLSHR.EXE. By default this is installed into the perl install tree, which means you must set up a logical PERLSHR that points to it. If you don't want to do this you can copy PERLSHR.EXE into SYS$SHARE and the system will find it properly.

Set up the symbols

Once installed, you'll need to set up the symbols needed to access perl.

$ define/nolog perlshr perl_root:[000000]perlshr
$ Define/nolog pod2man perl_root:[000000]pod2man.com
$ Define/nolog pod2text perl_root:[000000]pod2text.com
$ perl :== "$perl_root:[000000]perl.exe"
$ perldoc :== "''perl' perl_root:[lib.pod]perldoc.com -t"
$ pod2man :== "''perl' POD2MAN"
$ pod2text :== "''perl' POD2TEXT"

And that's it.


Last updated 19-February-1999
Questions or comments?
Write the Webmaster