Spec-Zone.ru › Perl 5.28

perldos

СОДЕРЖАНИЕ

  • НАЗВАНИЕ
  • СИНОПСИС
  • ОПИСАНИЕ
    • Предварительные условия для компиляции Perl под DOS
    • Недостатки Perl под DOS
    • Компиляция Perl под DOS
    • Тестирование Perl под DOS
    • Установка Perl под DOS
  • КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ ПОД DOS
    • Предварительные условия для компиляции модулей Perl под DOS
    • Распаковка модулей CPAN под DOS
    • Компиляция модулей без XS под DOS
    • Компиляция модулей с XS под DOS
  • АВТОР
  • СМОТРИТЕ ТАКЖЕ

НАЗВАНИЕ

perldos - Perl под DOS, W31, W95.

СИНОПСИС

Данные инструкции предназначены для компиляции Perl под DOS (или w??), используя DJGPP v2.03 или более позднюю версию. В под w95 поддерживаются длинные имена файлов.

ОПИСАНИЕ

Прежде чем начать, вы должны ознакомиться с файлом README в корневом каталоге, где была распакована дистрибуция Perl. Убедитесь, что вы ознакомились и поняли условия распространения данного программного обеспечения.

Этот порт в настоящее время поддерживает MakeMaker (набор модулей, используемых для построения расширений к perl). Поэтому вы должны быть в состоянии скомпилировать и установить большинство расширений, доступных на сайтах CPAN.

Включены подробные инструкции по компиляции и установке модулей расширений perl, включая модули типа XS. Смотрите раздел «КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ».

Предварительные условия для компиляции Perl на DOS

DJGPP

DJGPP — это порт компилятора GNU C/C++ и средств разработки для 32-битной защищённой среды на процессорах Intel x86 архитектуры, работающих под MS-DOS и совместимых операционных системах, разработанный DJ Delorie <dj@delorie.com> и его друзьями.

Дополнительную информацию (FAQ) можно найти на сайте DJGPP:

http://www.delorie.com/djgpp/

Если у вас возникнут вопросы по DJGPP, попробуйте обратиться в новостную группу DJGPP: comp.os.msdos.djgpp или используйте адрес электронной почты djgpp@delorie.com.

Полную дистрибуцию DJGPP можно найти на одном из зеркал, указанных здесь:

http://www.delorie.com/djgpp/getting.html

Для компиляции perl (или добавления новых модулей) вам потребуются следующие файлы:

v2/djdev203.zip
v2gnu/bnu2112b.zip
v2gnu/gcc2953b.zip
v2gnu/bsh204b.zip
v2gnu/mak3791b.zip
v2gnu/fil40b.zip
v2gnu/sed3028b.zip
v2gnu/txt20b.zip
v2gnu/dif272b.zip
v2gnu/grep24b.zip
v2gnu/shl20jb.zip
v2gnu/gwk306b.zip
v2misc/csdpmi5b.zip

или, возможно, любая более новая версия.

Pthreads

Поддержка потоков в этой версии perl для djgpp не протестирована.

Недостатки Perl под DOS

Perl под DOS лишен некоторых функций Perl под UNIX из-за недостатков эмуляции UNIX, в частности:

  • fork() и pipe()

  • некоторые функции файловой системы UNIX, касающиеся счетчика ссылок и дат файлов

  • несовместимость с операциями «на месте» при использовании коротких имён файлов

  • сокеты

Компиляция Perl под DOS

  • Распакуйте исходный пакет perl5.8*.tar.gz с помощью djtarx. Если вы хотите использовать длинные имена файлов в w95 и также обеспечить успешное прохождение всех тестов Perl, не забудьте выполнить команду

    set LFN=y
    set FNCASE=y

    перед распаковкой архива.

  • Создайте «символическую ссылку» или скопируйте ваш bash.exe в sh.exe в каталоге ($DJDIR)/bin.

    ln -s bash.exe sh.exe

    [Если у вас установлена рекомендуемая версия bash для DJGPP, эта процедура выполняется автоматически.]

    И установите переменную окружения SHELL на этот sh.exe:

    set SHELL=c:/djgpp/bin/sh.exe (use full path name!)

    Вы можете сделать это также в файле djgpp.env. Добавьте эту строку ДО любой секции:

    +SHELL=%DJDIR%/bin/sh.exe
  • Если у вас есть split.exe и gsplit.exe в вашей переменной среды, переименуйте split.exe в djsplit.exe, а gsplit.exe в split.exe. Скопируйте или создайте символическую ссылку на gecho.exe на echo.exe, если у вас нет echo.exe. Скопируйте или создайте символическую ссылку на gawk.exe на awk.exe, если у вас нет awk.exe.

    [Если у вас установлены рекомендуемые версии djdev, утилиты оболочки и gawk, все эти действия выполняются автоматически, и вам ничего делать не нужно.]

  • Перейдите в подкаталог djgpp в каталоге perl и выполните следующие команды:

    set FNCASE=y
    configure.bat

    Это выполнит некоторую предварительную обработку, а затем запустит скрипт Configure. Скрипт Configure интерактивный, но в большинстве случаев достаточно нажать ENTER. Команда «set» гарантирует, что DJGPP сохраняет регистр имён файлов при чтении каталогов. Если вы уже выполнили эту команду при распаковке архива и находитесь в той же сессии DOS, что и при распаковке, вам не нужно её повторно выполнять. Эта команда необходима *до* начала (повторной) конфигурации или (повторной) компиляции perl, чтобы гарантировать правильную компиляцию perl и успешную компиляцию модулей типа XS. Смотрите запись в документации DJGPP для "_preserve_fncase" для получения дополнительной информации:

    info libc alphabetical _preserve_fncase

    Если скрипт сообщит, что ваш пакет неполный и спросит, продолжить ли, просто ответьте Y (это может произойти только если вы не используете длинные имена файлов или забыли выполнить команду "set FNCASE=y" в самом начале).

    Когда скрипт Configure спросит о необходимых расширениях, я рекомендую IO и Fcntl, а если вам нужны возможности работы с базами данных, то SDBM_File или GDBM_File (для этого необходимо установить gdbm). Если вы хотите использовать расширение POSIX (это значение по умолчанию), убедитесь, что размер стека вашего cc1.exe составляет не менее 512 Кбайт (вы можете проверить это с помощью команды: stubedit cc1.exe).

    Вы также можете использовать скрипт Configure в неинтерактивном режиме. При компиляции моего perl.exe я использовал что-то вроде этого:

    configure.bat -des

    Дополнительную информацию о командных переключателях скрипта Configure можно найти в файле INSTALL.

    По завершении скрипта, если вы хотите изменить некоторые значения в сгенерированном файле config.sh, выполните команду

    sh Configure -S

    после внесения изменений.

    ВАЖНО: если вы используете этот -S переключатель, обязательно удалите переменную окружения CONFIG перед запуском скрипта:

    set CONFIG=
  • Теперь можно скомпилировать Perl. Выполните команду:

    make

Тестирование Perl под DOS

Выполните команду:

make test

Если вам повезёт, вы увидите сообщение "All tests successful". В зависимости от некоторых внешних условий (например, некоторые подтесты могут завершиться неудачей в средах linux/dosemu или обычной DOS с короткими именами файлов) может быть несколько неудачных подтестов (в идеале менее 5).

Установка Perl под DOS

Выполните команду:

make install

Это скопирует только что скомпилированный perl и библиотеки в вашу структуру каталогов DJGPP. perl.exe и утилиты будут помещены в ($DJDIR)/bin, а библиотеки — в ($DJDIR)/lib/perl5. Поддержка документации pod будет в ($DJDIR)/lib/perl5/pod.

КОМПИЛЯЦИЯ И УСТАНОВКА МОДУЛЕЙ ПОД DOS

Предварительные условия для компиляции модулей Perl под DOS

Для компиляции и установки модулей без XS вам достаточно работающей версии perl под DJGPP. Модули без XS не требуют перекомпиляции бинарника perl, поэтому их компиляция и установка проще.

Модули типа XS требуют перекомпиляции бинарника perl, поскольку часть модуля XS написана на «C» и должна быть связана с бинарником perl для выполнения. Это необходимо, так как perl под DJGPP скомпилирован с опцией «статической компоновки» из-за отсутствия «динамической компоновки» в среде DJGPP.

Поскольку модули XS требуют перекомпиляции бинарника perl, для их компиляции вам нужны как дистрибутив бинарника perl, так и исходный код perl. Кроме того, вам необходимо скомпилировать бинарник perl из исходного кода, чтобы все компоненты бинарника perl были доступны для этапа компоновки.

Распаковка модулей CPAN под DOS

Сначала загрузите пакет модуля с CPAN (например, пакет «Comma Separated Value» Text-CSV-0.01.tar.gz). Затем распакуйте содержимое пакета в нужное место на вашем диске. Большинство пакетов CPAN имеют внутреннюю структуру каталогов, поэтому обычно безопасно распаковывать их в корневой каталог вашей установки DJGPP. Некоторые предпочитают располагать исходные деревья в /usr/src (т.е., ($DJDIR)/usr/src), но вы можете поместить их куда захотите, *кроме* того же каталога, что и ваш исходный код perl. Есть особые правила, которые применяются к модулям, расположенным в дереве исходного кода perl, которые не применяются к большинству модулей CPAN.

В отличие от других пакетов DJGPP, представляющих собой обычные «zip» файлы, большинство пакетов модулей CPAN являются «gzipped tarballs». Недавние версии WinZip безопасно распакуют и расширят их, *ЗА ИСКЛЮЧЕНИЕМ* случаев с файлами нулевой длины. Известная ошибка WinZip (начиная с версии 7.0) заключается в том, что он не извлекает файлы нулевой длины.

Из командной строки вы можете использовать утилиту djtar, предоставляемую DJGPP, для распаковки и расширения этих файлов. Например:

C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz

Это создаст новый каталог ($DJDIR)/Text-CSV-0.01, заполнив его исходным кодом этого модуля.

Компиляция модулей без XS под DOS

Для компиляции модуля без XS вы можете использовать стандартные инструкции по сборке модулей, поставляемые с perl.

perl Makefile.PL
make
make test
make install

Этого достаточно, потому что модули без XS устанавливают только файлы «.pm» и (иногда) документацию под/man. Для компиляции, установки или использования модулей без XS перекомпиляция бинарника perl не требуется.

Компиляция модулей с XS под DOS

Для компиляции модуля с XS вы должны использовать стандартные инструкции по сборке модулей, поставляемые с perl, *ПЛЮС* три дополнительные инструкции, специфичные для среды DJGPP со «статической компоновкой».

set FNCASE=y
perl Makefile.PL
make
make perl
make test
make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe
make install

Первая дополнительная инструкция устанавливает переменную среды FNCASE DJGPP так, чтобы новый бинарник perl, который вы должны скомпилировать для модуля типа XS, был скомпилирован корректно. Вторая дополнительная инструкция перекомпилирует бинарник perl в каталоге вашего модуля перед запуском «make test», чтобы вы тестировали с новым кодом модуля, скомпилированным с помощью «make». Третья дополнительная инструкция устанавливает бинарник perl из каталога вашего модуля в стандартный каталог бинарников DJGPP, ($DJDIR)/bin, заменяя ваш предыдущий бинарник perl.

Обратите внимание, что значение MAP_TARGET *должно* иметь расширение «.exe», иначе вы не создадите «perl.exe» для замены файла в ($DJDIR)/bin.

После завершения процесса установки модуля с XS информация о замене бинарника perl и установленном модуле будет добавлена в файл «perllocal». Вы можете просмотреть эту информацию в любое время, выполнив команду:

perl -S perldoc perllocal

АВТОР

Ласло Молнар, laszlo.molnar@eth.ericsson.se [Установка/создание perl]

Питер Дж. Фарли III pjfarley@banet.net [Компиляция/установка модулей]

СМОТРИТЕ ТАКЖЕ

perl(1).

© 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/perldos

Spec-Zone.ru

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