Spec-Zone.ru › Perl 5.34

perlos400

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • ОПИСАНИЕ
    • Компиляция Perl для OS/400 PASE
    • Установка Perl в OS/400 PASE
    • Использование Perl в OS/400 PASE
    • Известные проблемы
    • Perl в среде ILE
  • АВТОРЫ

НАЗВАНИЕ

perlos400 - Perl версия 5 в OS/400

Этот документ нуждается в обновлении, но мы не знаем, что в нём должно быть. Пожалуйста, отправляйте комментарии на https://github.com/Perl/perl5/issues.

ОПИСАНИЕ

Этот документ описывает различные особенности операционной системы 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 в PASE — /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. Это заставит команду «make install» устанавливать всё в этот каталог, при этом установленные файлы всё равно будут считать, что они находятся (будут находиться) в /QOpenSys/perl.

Если вы выполняете компиляцию непосредственно в PASE, выполните её в каталоге /QOpenSys, так как Perl предпочитает компиляцию в файловой системе с учётом регистра.

Установка Perl в OS/400 PASE

Если вы компилируете в AIX, просто выполните «make install» на машине AIX. После завершения установки заархивируйте каталог /QOpenSys/perl. Переместите архивный файл в 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.

Если у вас есть тестовые примеры, которые завершаются ошибками, проверьте наличие файлов очереди. Возможно, тестовый пример пытается использовать системный вызов, который не реализован в 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–2021 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.34.0/perlos400

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API