perlos390.pod

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· POD 代码 · 共 459 行 · 第 1/2 页

POD
459
字号
This document is written in pod format hence there are punctuationcharacters in odd places.  Do not worry, you've apparently got theASCII->EBCDIC translation worked out correctly.  You can read moreabout pod in pod/perlpod.pod or the short summary in the INSTALL file.=head1 NAMEREADME.os390 - building and installing Perl for OS/390 and z/OS=head1 SYNOPSISThis document will help you Configure, build, test and install Perlon OS/390 (aka z/OS) Unix System Services.=head1 DESCRIPTIONThis is a fully ported Perl for OS/390 Version 2 Release 3, 5, 6, 7,8, and 9.  It may work on other versions or releases, but those arethe ones we've tested it on.You may need to carry out some system configuration tasks beforerunning the Configure script for Perl.=head2 ToolsThe z/OS Unix Tools and Toys list may prove helpful and contains linksto ports of much of the software helpful for building Perl.http://www-1.ibm.com/servers/eserver/zseries/zos/unix/bpxa1toy.html=head2 Unpacking Perl distribution on OS/390If using ftp remember to transfer the distribution in binary format.Gunzip/gzip for OS/390 is discussed at:  http://www-1.ibm.com/servers/eserver/zseries/zos/unix/faq/bpxqp1.htmlto extract an ASCII tar archive on OS/390, try this:   pax -o to=IBM-1047,from=ISO8859-1 -r < latest.taror   zcat latest.tar.Z | pax -o to=IBM-1047,from=ISO8859-1 -rIf you get lots of errors of the form  tar: FSUM7171 ...: cannot set uid/gid: EDC5139I Operation not permitted.you didn't read the above and tried to use tar instead of pax, you'llfirst have to remove the (now corrupt) perl directory   rm -rf perl-...and then use pax.=head2 Setup and utilities for Perl on OS/390Be sure that your yacc installation is in place including any necessaryparser template files. If you have not already done so then be sure to:  cp /samples/yyparse.c /etcThis may also be a good time to ensure that your /etc/protocol fileand either your /etc/resolv.conf or /etc/hosts files are in place.The IBM document that described such USS system setup issues wasSC28-1890-07 "OS/390 UNIX System Services Planning", in particularChapter 6 on customizing the OE shell.GNU make for OS/390, which is recommended for the build of perl (aswell as building CPAN modules and extensions), is available from theL</Tools>.Some people have reported encountering "Out of memory!" errors whiletrying to build Perl using GNU make binaries.  If you encounter suchtrouble then try to download the source code kit and build GNU makefrom source to eliminate any such trouble.  You might also find GNU make(as well as Perl and Apache) in the red-piece/book "Open Source Softwarefor OS/390 UNIX", SG24-5944-00 from IBM.If instead of the recommended GNU make you would like to use the systemsupplied make program then be sure to install the default rules fileproperly via the shell command:    cp /samples/startup.mk /etcand be sure to also set the environment variable _C89_CCMODE=1 (exporting_C89_CCMODE=1 is also a good idea for users of GNU make).You might also want to have GNU groff for OS/390 installed beforerunning the "make install" step for Perl.There is a syntax error in the /usr/include/sys/socket.h header filethat IBM supplies with USS V2R7, V2R8, and possibly V2R9.  The problem withthe header file is that near the definition of the SO_REUSEPORT constantthere is a spurious extra '/' character outside of a comment like so: #define SO_REUSEPORT    0x0200    /* allow local address & port                                      reuse */                    /You could edit that header yourself to remove that last '/', or you mightnote that Language Environment (LE) APAR PQ39997 describes the problemand PTF's UQ46272 and UQ46271 are the (R8 at least) fixes and apply them.If left unattended that syntax error will turn up as an inability for Perlto build its "Socket" extension.For successful testing you may need to turn on the sticky bit for yourworld readable /tmp directory if you have not already done so (see man chmod).=head2 Configure Perl on OS/390Once you've unpacked the distribution, run "sh Configure" (see INSTALLfor a full discussion of the Configure options).  There is a "hints" filefor os390 that specifies the correct values for most things.  Some thingsto watch out for include:=over 4=item *A message of the form: (I see you are using the Korn shell.  Some ksh's blow up on Configure, mainly on older exotic systems.  If yours does, try the Bourne shell instead.)is nothing to worry about at all.=item *Some of the parser default template files in /samples are needed in /etc.In particular be sure that you at least copy /samples/yyparse.c to /etcbefore running Perl's Configure.  This step ensures successful extractionof EBCDIC versions of parser files such as perly.c, perly.h, and x2p/a2p.c.This has to be done before running Configure the first time.  If you failedto do so then the easiest way to re-Configure Perl is to delete yourmisconfigured build root and re-extract the source from the tar ball.Then you must ensure that /etc/yyparse.c is properly in place beforeattempting to re-run Configure.=item *This port will support dynamic loading, but it is not selected bydefault.  If you would like to experiment with dynamic loading thenbe sure to specify -Dusedl in the arguments to the Configure script.See the comments in hints/os390.sh for more information on dynamic loading.If you build with dynamic loading then you will need to add the$archlibexp/CORE directory to your LIBPATH environment variable in orderfor perl to work.  See the config.sh file for the value of $archlibexp.If in trying to use Perl you see an error message similar to: CEE3501S The module libperl.dll was not found.         From entry point __dllstaticinit at compile unit offset +00000194 atthen your LIBPATH does not have the location of libperl.x and eitherlibperl.dll or libperl.so in it.  Add that directory to your LIBPATH andproceed.=item *Do not turn on the compiler optimization flag "-O".  There isa bug in either the optimizer or perl that causes perl tonot work correctly when the optimizer is on.=item *Some of the configuration files in /etc used by thenetworking APIs are either missing or have the wrongnames.  In particular, make sure that there's eitheran /etc/resolv.conf or an /etc/hosts, so thatgethostbyname() works, and make sure that the file/etc/proto has been renamed to /etc/protocol (NOT/etc/protocols, as used by other Unix systems).You may have to look for things like HOSTNAME and DOMAINORIGINin the "//'SYS1.TCPPARMS(TCPDATA)'" PDS member in order toproperly set up your /etc networking files.=back=head2 Build, Test, Install Perl on OS/390Simply put:    sh Configure    make    make testif everything looks ok (see the next section for test/IVP diagnosis) then:    make installthis last step may or may not require UID=0 privileges dependingon how you answered the questions that Configure asked and whetheror not you have write access to the directories you specified.=head2 Build Anomalies with Perl on OS/390"Out of memory!" messages during the build of Perl are most often fixedby re building the GNU make utility for OS/390 from a source code kit.Another memory limiting item to check is your MAXASSIZE parameter in your'SYS1.PARMLIB(BPXPRMxx)' data set (note too that as of V2R8 address spacelimits can be set on a per user ID basis in the USS segment of a RACFprofile).  People have reported successful builds of Perl with MAXASSIZEparameters as small as 503316480 (and it may be possible to build Perlwith a MAXASSIZE smaller than that).Within USS your /etc/profile or $HOME/.profile may limit your ulimitsettings.  Check that the following command returns reasonable values:    ulimit -aTo conserve memory you should have your compiler modules loaded into theLink Pack Area (LPA/ELPA) rather than in a link list or step lib.If the c89 compiler complains of syntax errors during the build of theSocket extension then be sure to fix the syntax error in the systemheader /usr/include/sys/socket.h.=head2 Testing Anomalies with Perl on OS/390The "make test" step runs a Perl Verification Procedure, usually beforeinstallation.  You might encounter STDERR messages even during a successfulrun of "make test".  Here is a guide to some of the more commonly seenanomalies:=over 4=item *

⌨️ 快捷键说明

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