Spec-Zone.ru › Perl 5.28

perlos400

СОДЕРЖАНИЕ

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

ИМЯ

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

Spec-Zone.ru

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