Spec-Zone.ru › Perl 5.32

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 устанавливается в каталог /QOpenSys/perl. Этот каталог можно изменить, если необходимо, с помощью параметра Configure -Dprefix=/some/dir.

Начиная с OS/400 V5R2, на OS/400 PASE поддерживается компилятор IBM Visual Age, поэтому можно создать 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. Передайте архивный файл на 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. Если вы не уверены, обратитесь к документации или используйте "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.30.3/perlos400

Spec-Zone.ru

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