perlos400
СОДЕРЖАНИЕ
ИМЯ
perlos400 - Perl версия 5 для OS/400
Этот документ необходимо обновить, но мы не знаем, что в нём должно быть. Пожалуйста, отправляйте комментарии на perlbug@perl.org.
ОПИСАНИЕ
В данном документе описаны различные особенности операционной системы IBM OS/400, которые повлияют на компиляцию и/или выполнение Perl версии 5 (далее просто Perl).
Наиболее простой способ построения Perl для OS/400 - использование среды PASE (Portable Application Solutions Environment). Дополнительная информация доступна по адресу http://www.iseries.ibm.com/developer/factory/pase/index.html. Эта среда позволяет использовать API AIX во время программирования и предоставляет среду выполнения, которая позволяет исполнять двоичные файлы AIX непосредственно на PowerPC iSeries.
Компиляция Perl для OS/400 PASE
Рекомендуемый способ компиляции Perl для OS/400 PASE - компиляция исходного кода Perl 5 (версия 5.8.1 или более поздняя) под AIX.
Секрет заключается в передаче специального параметра скрипту Configure при его запуске под AIX:
sh Configure -DPASE ... По умолчанию Perl устанавливается в каталоге /QOpenSys/perl. Этот каталог можно изменить с помощью параметра Configure -Dprefix=/some/dir.
Начиная с OS/400 V5R2, компилятор IBM Visual Age поддерживается в OS/400 PASE, что позволяет производить компиляцию Perl непосредственно на OS/400. Однако более простой способ - компиляция под AIX, как описано выше.
Если вы не хотите устанавливать скомпилированный Perl в AIX в каталог /QOpenSys (для упаковки перед копированием в PASE), можно использовать параметр Configure: -Dinstallprefix=/tmp/QOpenSys/perl. Это приведет к установке всех файлов в указанный каталог, при этом установленные файлы будут по-прежнему считать себя (будут) в /QOpenSys/perl.
Если вы производите компиляцию непосредственно в PASE, пожалуйста, выполните компиляцию в каталоге /QOpenSys, так как Perl лучше работает на файловой системе с различением регистров.
Установка Perl в OS/400 PASE
Если вы компилируете под AIX, просто выполните "make install" на машине AIX. После завершения установки, заархивируйте каталог /QOpenSys/perl с помощью утилиты tar. Передайте архивный файл на OS/400 с помощью FTP, используя следующие команды:
> binary
> site namefmt 1
> put perl.tar /QOpenSys После загрузки, просто откройте оболочку PASE и распакуйте архивный файл.
Если вы компилируете в PASE, то "make install" - единственная необходимая операция.
По умолчанию бинарный файл perl находится в /QOpenSys/perl/bin/perl. Рекомендуется создать символическую ссылку /QOpenSys/usr/bin/perl на этот файл, чтобы не приходилось изменять пути.
Использование Perl в OS/400 PASE
Perl в PASE используется аналогично Perl под AIX.
Скрипты, начинающиеся с #!/usr/bin/perl, должны работать, если /QOpenSys/usr/bin/perl является символической ссылкой на ваш бинарный файл perl. Это не сработает, если вы использовали setuid/setgid или имеете переменную окружения PASE_EXEC_QOPENSYS="N". Если у вас V5R1, вам потребуется получить последние PTF для этой функции. Скрипты, начинающиеся с #!/QOpenSys/perl/bin/perl, всегда должны работать.
Известные проблемы
При компиляции в PASE команда "oslevel" отсутствует. Поэтому вы можете создать скрипт под названием "oslevel", который выводит уровень AIX, поддерживаемый вашей версией PASE runtime. Если вы не уверены, обратитесь к документации или используйте "4.3.3.0".
Если у вас есть тестовые сценарии, которые не проходят, проверьте наличие файлов очереди. Возможно, тестовый сценарий пытается использовать системный вызов, который не реализован в PASE. Чтобы избежать SIGILL, попробуйте установить переменную окружения PASE_SYSCALL_NOSIGILL или обработать SIGILL. Если вы можете скомпилировать программы для PASE, запустите скрипт конфигурации и отредактируйте config.sh, если у вас есть такая возможность. Если вы хотите удалить fchdir(), который не реализован в V5R1, просто замените строку:
d_fchdir='define'
на
d_fchdir='undef'
и затем скомпилируйте Perl. В местах использования fchdir() есть альтернативы для систем, в которых fchdir() недоступен.
Perl в среде ILE
Существует порт Perl для среды ILE. Однако этот порт основан на достаточно старой версии Perl, Perl 5.00502 (август 1998). (На июль 2002 года последней версией Perl является 5.8.0, а даже 5.6.1 была выпущена в апреле 2001 года.) Если вам нужно запустить Perl в среде ILE, вам может понадобиться этот более старый порт: http://www.cpan.org/ports/#os400 Обратите внимание, что любые версии Perl, более поздние, чем 5.00502, не были портированы в ILE.
Если вам нужно использовать Perl в среде ILE, вы можете рассмотреть возможность использования Qp2RunPase() для вызова версии Perl в PASE.
АВТОРЫ
Jarkko Hietaniemi <jhi@iki.fi> Bryan Logan <bryanlog@us.ibm.com> David Larson <larson1@us.ibm.com>
© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.28.3/perlos400