perlvms.html

来自「perl教程」· HTML 代码 · 共 821 行 · 第 1/3 页

HTML
821
字号
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>README.vms - Configuring, building, testing, and installing perl on VMS</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>

<script>writelinks('__top__',2);</script>
<h1><a>README.vms - Configuring, building, testing, and installing perl on VMS</a></h1>
<p><a name="__index__"></a></p>

<!-- INDEX BEGIN -->

<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">SYNOPSIS</a></li>
	<li><a href="#description">DESCRIPTION</a></li>
	<ul>

		<li><a href="#important_safety_tip">Important safety tip</a></li>
		<li><a href="#introduction_to_perl_on_vms">Introduction to Perl on VMS</a></li>
		<li><a href="#other_required_software_for_compiling_perl_on_vms">Other required software for Compiling Perl on VMS</a></li>
		<li><a href="#additional_software_that_is_optional_for_perl_on_vms">Additional software that is optional for Perl on VMS</a></li>
	</ul>

	<li><a href="#unpacking_the_perl_source_code">Unpacking the Perl source code</a></li>
	<li><a href="#configuring_the_perl_build">Configuring the Perl build</a></li>
	<ul>

		<li><a href="#changing_compiletime_options__optional__for_perl_on_vms">Changing compile-time options (optional) for Perl on VMS</a></li>
		<li><a href="#socket_support__optional__for_perl_on_vms">Socket Support (optional) for Perl on VMS</a></li>
	</ul>

	<li><a href="#building_perl">Building Perl</a></li>
	<li><a href="#testing_perl">Testing Perl</a></li>
	<ul>

		<li><a href="#cleaning_up_and_starting_fresh__optional__installing_perl_on_vms">Cleaning up and starting fresh (optional) installing Perl on VMS</a></li>
	</ul>

	<li><a href="#installing_perl">Installing Perl</a></li>
	<ul>

		<li><a href="#installing_perl_into_dcltables__optional__on_vms">Installing Perl into DCLTABLES (optional) on VMS</a></li>
		<li><a href="#installing_perl_images__optional__on_vms">INSTALLing Perl images (optional) on VMS</a></li>
		<li><a href="#running_h2ph_to_create_perl_header_files__optional__on_vms">Running h2ph to create perl header files (optional) on VMS</a></li>
	</ul>

	<li><a href="#reporting_bugs">Reporting Bugs</a></li>
	<li><a href="#caveats">CAVEATS</a></li>
	<ul>

		<li><a href="#dec_c_issues_with_perl_on_vms">DEC C issues with Perl on VMS</a></li>
		<li><a href="#gnu_issues_with_perl_on_vms">GNU issues with Perl on VMS</a></li>
		<li><a href="#floating_point_considerations">Floating Point Considerations</a></li>
		<li><a href="#multinet_issues_with_perl_on_vms">Multinet issues with Perl on VMS</a></li>
	</ul>

	<li><a href="#mailing_lists">Mailing Lists</a></li>
	<ul>

		<li><a href="#web_sites_for_perl_on_vms">Web sites for Perl on VMS</a></li>
	</ul>

	<li><a href="#see_also">SEE ALSO</a></li>
	<li><a href="#authors">AUTHORS</a></li>
	<li><a href="#acknowledgements">ACKNOWLEDGEMENTS</a></li>
</ul>
<!-- INDEX END -->

<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>README.vms - Configuring, building, testing, and installing perl on VMS</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<p>To configure, build, test, and install perl on VMS:</p>
<pre>
    @ Configure
    mms
    mms test
    mms install</pre>
<p>mmk may be used in place of mms in the last three steps.</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>
</p>
<h2><a name="important_safety_tip">Important safety tip</a></h2>
<p>The build and install procedures have changed significantly from the 5.004
releases!  Make sure you read the &quot;Configuring the Perl Build&quot;, &quot;Building 
Perl&quot;, and &quot;Installing Perl&quot; sections of this document before you build or 
install.  Also please note other changes in the current release by having
a look at <a href="../../lib/Pod/perldelta.html#vms">VMS in the perldelta manpage</a>.</p>
<p>Also note that, as of Perl version 5.005 and later, an ANSI C compliant 
compiler is required to build Perl.  VAX C is *not* ANSI compliant, as it 
died a natural death some time before the standard was set.  Therefore 
VAX C will not compile Perl 5.005 or later.  We are sorry about that.</p>
<p>If you are stuck without Compaq (formerly DEC) C consider trying Gnu C
instead, though there have been no recent reports of builds using Gnu C. 
There is minimal support for Compaq C++ but this support is not complete;
if you get it working please write to the vmsperl list (for info see
<a href="#mailing_lists">Mailing Lists</a>).</p>
<p>
</p>
<h2><a name="introduction_to_perl_on_vms">Introduction to Perl on VMS</a></h2>
<p>The VMS port of Perl is as functionally complete as any other Perl port
(and as complete as the ports on some Unix systems). The Perl binaries
provide all the Perl system calls that are either available under VMS or
reasonably emulated. There are some incompatibilities in process handling
(e.g. the fork/exec model for creating subprocesses doesn't do what you
might expect under Unix), mainly because VMS and Unix handle processes and
sub-processes very differently.</p>
<p>There are still some unimplemented system functions, and of course we
could use modules implementing useful VMS system services, so if you'd like
to lend a hand we'd love to have you.  Join the Perl Porting Team Now!</p>
<p>The current sources and build procedures have been tested on a VAX using
DEC C, and on an AXP using DEC C. If you run into problems with
other compilers, please let us know.  (Note: DEC C was renamed to Compaq C
around version 6.2).</p>
<p>There are issues with various versions of DEC C, so if you're not running a
relatively modern version, check the &quot;DEC C issues&quot; section later on in this
document.</p>
<p>
</p>
<h2><a name="other_required_software_for_compiling_perl_on_vms">Other required software for Compiling Perl on VMS</a></h2>
<p>In addition to VMS and DCL you will need two things:</p>
<ol>
<li><strong><a name="item_a_c_compiler_2e">A C compiler.</a></strong>

<p>DEC (now Compaq) C or gcc for VMS (AXP or VAX).</p>
</li>
<li><strong><a name="item_a_make_tool_2e">A make tool.</a></strong>

<p>DEC's MMS (v2.6 or later), or MadGoat's free MMS
analog MMK (available from ftp.madgoat.com/madgoat) both work
just fine. Gnu Make might work, but it's been so long since
anyone's tested it that we're not sure.  MMK is free though, so
go ahead and use that.</p>
</li>
</ol>
<p>
</p>
<h2><a name="additional_software_that_is_optional_for_perl_on_vms">Additional software that is optional for Perl on VMS</a></h2>
<p>You may also want to have on hand:</p>
<ol>
<li><strong><a name="item_gunzip_2fgzip_2eexe_for_vms">GUNZIP/GZIP.EXE for VMS</a></strong>

<p>A de-compressor for *.gz and *.tgz files available from a number 
of web/ftp sites and is distributed on the OpenVMS Freeware CD-ROM 
from Compaq.</p>
<pre>
    <a href="http://www.fsf.org/order/ftp.html">http://www.fsf.org/order/ftp.html</a>
    <a href="http://www.openvms.compaq.com/freeware/">http://www.openvms.compaq.com/freeware/</a>
    <a href="http://www.crinoid.com/utils/">http://www.crinoid.com/utils/</a></pre>
</li>
<li><strong><a name="item_vms_tar">VMS TAR</a></strong>

<p>For reading and writing unix tape archives (*.tar files).  Vmstar is also 
available from a number of web/ftp sites and is distributed on the OpenVMS
Freeware CD-ROM from Compaq.</p>
<pre>
    <a href="ftp://ftp.lp.se/vms/">ftp://ftp.lp.se/vms/</a>
    <a href="http://www.openvms.compaq.com/freeware/">http://www.openvms.compaq.com/freeware/</a></pre>
<p>Recent versions of VMS tar on ODS-5 volumes may extract tape archive
files with ^. escaped periods in them.  See below for further workarounds.</p>
</li>
<li><strong><a name="item_unzip_2eexe_for_vms">UNZIP.EXE for VMS</a></strong>

<p>A combination decompressor and archive reader/writer for *.zip files.  
Unzip is available from a number of web/ftp sites.</p>
<pre>
    <a href="http://www.info-zip.org/UnZip.html">http://www.info-zip.org/UnZip.html</a>
    <a href="http://www.openvms.compaq.com/freeware/">http://www.openvms.compaq.com/freeware/</a>
    <a href="ftp://ftp.openvms.compaq.com/">ftp://ftp.openvms.compaq.com/</a>
    <a href="ftp://ftp.madgoat.com/madgoat/">ftp://ftp.madgoat.com/madgoat/</a>
    <a href="ftp://ftp.process.com/vms-freeware/">ftp://ftp.process.com/vms-freeware/</a></pre>
</li>
<li><strong><a name="item_most">MOST</a></strong>

<p>Most is an optional pager that is convenient to use with perldoc (unlike 
TYPE/PAGE, MOST can go forward and backwards in a document and supports 
regular expression searching).  Most builds with the slang 
library on VMS.  Most and slang are available from:</p>
<pre>
    <a href="ftp://space.mit.edu/pub/davis/">ftp://space.mit.edu/pub/davis/</a>
    <a href="ftp://ftp.process.com/vms-freeware/narnia/">ftp://ftp.process.com/vms-freeware/narnia/</a></pre>
</li>
<li><strong><a name="item_gnu_patch_and_diffutils_for_vms">GNU PATCH and DIFFUTILS for VMS</a></strong>

<p>Patches to Perl are usually distributed as GNU unified or contextual diffs. 
Such patches are created by the GNU diff program (part of the diffutils
distribution) and applied with GNU patch.  VMS ports of these utilities are
available here:</p>
<pre>
    <a href="http://www.crinoid.com/utils/">http://www.crinoid.com/utils/</a>
    <a href="http://www.openvms.compaq.com/freeware/">http://www.openvms.compaq.com/freeware/</a></pre>
</li>
</ol>
<p>Please note that UNZIP and GUNZIP are not the same thing (they work with
different formats).  Many of the useful files from CPAN (the Comprehensive
Perl Archive Network) are in *.tar.gz or *.tgz format (this includes copies 
of the source code for perl as well as modules and scripts that you may 
wish to add later) hence you probably want to have GUNZIP.EXE and 
VMSTAR.EXE on your VMS machine.</p>
<p>If you want to include socket support, you'll need a TCP/IP stack and either
DEC C, or socket libraries.  See the &quot;Socket Support (optional)&quot; topic 
for more details.</p>
<p>
</p>
<hr />
<h1><a name="unpacking_the_perl_source_code">Unpacking the Perl source code</a></h1>
<p>You may need to set up a foreign symbol for the unpacking utility of choice.</p>
<p>If you unpack a perl source kit with a name containing multiple periods on
an ODS-5 volume using recent versions of vmstar (e.g. V3.4 or later) you may
need to be especially careful in unpacking the tape archive file.  Try to use
the ODS-2 compatability qualifiers such as:</p>
<pre>
    vmstar /extract/verbose/ods2 perl-V^.VIII^.III.tar</pre>
<p>or:</p>
<pre>
    vmstar -xvof perl-5^.8^.8.tar</pre>
<p>If you neglected to use the /ODS2 qualifier or the -o switch then you
could rename the source directory:</p>
<pre>
    set security/protection=(o:rwed) perl-5^.8^.8.dir
    rename perl-5^.8^.8.dir perl-5_8_8.dir</pre>
<p>Perl on VMS as of 5.8.8 does not completely handle extended file
parse styles such as are encountered on ODS-5.  While it can be built,
installed, and run on ODS-5 filesystems; it may encounter
trouble with characters that are otherwise illegal on ODS-2
volumes (notably the ^. escaped period sequence).</p>
<p>
</p>
<hr />
<h1><a name="configuring_the_perl_build">Configuring the Perl build</a></h1>
<p>To configure perl (a necessary first step), issue the command</p>
<pre>
   @ Configure</pre>
<p>from the top of an unpacked perl source directory.  You will be asked a 
series of questions, and the answers to them (along with the capabilities 
of your C compiler and network stack) will determine how perl is custom 
built for your machine.</p>
<p>If you have multiple C compilers installed, you'll have your choice of
which one to use.  Various older versions of DEC C had some caveats, so if
you're using a version older than 5.2, check the &quot;DEC C Issues&quot; section.</p>
<p>If you have any symbols or logical names in your environment that may 
interfere with the build or regression testing of perl then configure.com 
will try to warn you about them.  If a logical name is causing
you trouble but is in an LNM table that you do not have write access to
then try defining your own to a harmless equivalence string in a table 
such that it is resolved before the other (e.g. if TMP is defined in the
SYSTEM table then try DEFINE TMP &quot;NL:&quot; or somesuch in your process table) 
otherwise simply deassign the dangerous logical names.  The potentially 
troublesome logicals and symbols are:</p>
<pre>
    COMP    &quot;LOGICAL&quot;
    EXT     &quot;LOGICAL&quot;
    FOO     &quot;LOGICAL&quot;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?