Руководство пользователя для GNU Awk

Arnold D. Robbins
перевод Балуева А. Н.

Оглавление

Приложение B. Установка gawk

  • Приложение B. Установка gawk

    Это приложение содержит инструкции для установки gawk на различных платформах, которые поддерживаются разработчиками. Первые разработчики поддерживали Unix (и одновременно GNU), потом были реализованы и другие переносы. Файл `ACKNOWLEDGMENT' в поставке gawk перечисляет электронные адреса лиц, осуществивших такие переносы. Они также указаны в разделе B.7 [Обнаруженные нестыковки и ошибки], стр. 292.

    B.1 Распространение gawk

    В начало страницы

    В этом разделе сначала описывается, как получить поставку gawk, как извлечь, и что содержится в различных файлах и подкаталогах.

    B.1.1 Получение поставки gawk

    В начало страницы

    Имеются три пути получения программного обеспечения GNU.
    1. Копировать его у кого-нибудь, кто его уже имеет.

    2. Можно заказать gawk непосредственно в Free Software Foundation. Поставки программного обеспечения возможны для Unix, MS-DOS и VMS, на ленте и CD-ROM. Адрес такой:

    Free Software Foundation 59 Temple Place--Suite 330 Boston, MA 02111-1307 USA Phone: +1-617-542-5942 Fax (including Japan): +1-617-542-2652 E-mail: gnu@gnu.org Средства от FSF непосредственно направляются на поддержку foundation и производство свободного программного обеспечения.

    3. Можно получить gawk , используя анонимное ftp к Internet host gnudist.gnu.org, в каталоге `/gnu/gawk'. Вот список других сайтов ftp, откуда можно получать программное обеспечение GNU. Если сайт числится как "site:directory" , то каталог указывает, где размещается обеспечение GNU. Нужно использовать сайты, которые географически близки к вам.

    Азия:

    cair-archive.kaist.ac.kr:/pub/gnu ftp.cs.titech.ac.jp ftp.nectec.or.th: /pub/mirrors/gnu utsun.s.u-tokyo.ac.jp:/ftpsync/prep

    Австралия:

    archie.au:/gnu (archie.oz or archie.oz.au for ACSnet)

    Африка:

    ftp.sun.ac.za:/pub/gnu Middle East: ftp.technion.ac.il:/pub/unsupported/gnu Europe: archive.eu.net ftp.denet.dk ftp.eunet.ch ftp.funet.fi:/pub/gnu ftp.ieunet.ie:pub/gnu ftp.informatik.rwth-aachen.de:/pub/gnu ftp.informatik.tu-muenchen.de ftp.luth.se:/pub/unix/gnu ftp.mcc.ac.uk ftp.stacken.kth.se ftp.sunet.se:/pub/gnu ftp.univ-lyon1.fr:pub/gnu ftp.win.tue.nl:/pub/gnu irisa.irisa.fr:/pub/gnu isy.liu.se nic.switch.ch:/mirror/gnu src.doc.ic.ac.uk:/gnu unix.hensa.ac.uk:/pub/uunet/systems/gnu

    Южная Америка:

    ftp.inf.utfsm.cl:/pub/gnu ftp.unicamp.br:/pub/gnu

    Западная Канада:

    ftp.cs.ubc.ca:/mirror2/gnu USA: col.hp.com:/mirrors/gnu f.ms.uky.edu:/pub3/gnu ftp.cc.gatech.edu:/pub/gnu ftp.cs.columbia.edu:/archives/gnu/prep ftp.digex.net:/pub/gnu ftp.hawaii.edu:/mirrors/gnu ftp.kpc.com:/pub/mirror/gnu

    USA (продолжение):

    ftp.uu.net:/systems/gnu gatekeeper.dec.com:/pub/GNU jaguar.utah.edu:/gnustuff labrea.stanford.edu mrcnext.cso.uiuc.edu:/pub/gnu vixen.cso.uiuc.edu:/gnu wuarchive.wustl.edu:/systems/gnu

    B.1.2 Извлечение поставки

    В начало страницы

    gawk поставляется в tar file, запакованном по GNU Zip программе, gzip. Если вы имеете поставку (например. `gawk-3.0.4.tar.gz'), сначала распакуйте файл по gzip и затем используйте tar для извлечения поставки. Вы можете для получения поставки gawk использовать следующий конвейер:

    
    # В системе V, добавьте  'o' к флажкам tar
    gzip -d -c gawk-3.0.4.tar.gz -- tar -xvpf
    

    Это создаст каталог с именем `gawk-3.0.4' в текущем каталоге. Имя файла с поставкой имеет форму `gawk-V.R.n.tar.gz'. V представляет главную версию gawk, R означает текущий выпуск версии V, и n означает уровень корректировки, в том смысле, что часть ошибок в выпуске исправлена. Текущий уровень корректировки есть 4, но в следующих поставках вы получите версию, выпуск и корректировку более высоких уровней. (Заметим, что уровни выпуска, большие или равные 90, означают "beta," или non-production software; вам не следует пользоваться такими версиями, если только вы не хотите поэкспериментировать.)

    Если работаете не на системе Unix, вам необходимы дополнительные действия для получения и извлечения поставки gawk. Вы должны проконсультироваться по этому поводу у локального эксперта.

    B.1.3 Содержимое поставки gawk

    В начало страницы

    Поставка gawk имеет ряд исходных Си-файлов, файлов с документацией, подкаталоги и файлы, относящиеся к процессам конфигурации (см. раздел B.2 [Компиляция и установка на платформе Unix], стр. 284), и несколько подкаталогов, относящихся к различным, не-Unix, операционным системам. В частности, в нее входят: Различные `.c', `.y' и `.h' файлы Эти файлы фактически содержат исходные коды gawk.

    `README' `README.d/README.*'
    Описательные файлы: `README' для gawk под Unix, и остальные для различных комбинаций аппаратуры и программного обеспечения.

    `INSTALL' Файл с обзором процесса конфигурации и установки.

    `PORTS' Список систем, на которые gawk перенесен и на которых успешно прошла система тестов.

    `ACKNOWLEDGMENT' Список лиц, сделавших существенный вклад в коды или документацию.

    `ChangeLog' Подробный список изменений, сделанных в исходном коде при исправлении ошибок или при усовершенствованиях.

    `NEWS' Список изменений в gawk со времени последнего выпуска или исправления.

    `COPYING' Общая публичная лицензия GNU.

    `FUTURES' Короткий перечень свойств и/или изменений, предполагаемых в будущих выпусках, с указаниями временных рамок изменений, связанных с их сложностью.

    `LIMITATIONS' Список факторов, которые ограничивают производительность gawk. Большинство их зависит от аппаратуры и программ операционной системы, а не от самой gawk.

    `POSIX.STD' Описание областей, в которых стандарт POSIX для awk неточен, и то, как gawk решает эти проблемы.

    `PROBLEMS' Файл, описывающий обнаруженные коллизии в текущем выпуске.

    `doc/awkforai.txt' Короткая статья, поясняющая, почему gawk есть хороший язык для программирования AI (Искусственного интеллекта).

    `doc/README.card' `doc/ad.block' `doc/awkcard.in' `doc/cardfonts' `doc/colors' `doc/macros' `doc/no.colors' `doc/setter.outline'

    Исходный код troff для пяти-цветной справочной карты. Новая версия troff, такая как GNU Troff (groff), необходима для получения цветной версии. См. файл `README.card' с инструкциями, если у вас старая версия troff.

    `doc/gawk.1' Исходный код troff для manual page с описанием gawk. Поставляется для удобства пользователей Unix.

    `doc/gawk.texi' Исходный файл Texinfo для настоящей книги. Он должен быть обработан с TEX для получения печатного документа, и с makeinfo для получения информационного файла Info.

    `doc/gawk.info' Сгенерированный файл Info для этой книги.

    `doc/igawk.1' Источник troff для manual page, описывающего программу igawk, представленную в разделе 16.2.9 [Простой способ использовать библиотечные функции], стр. 244.

    `doc/Makefile.in' Входной файл, используемый в конфигурационном процессе для генерации фактического `Makefile' для создания документации.

    `Makefile.in' `acconfig.h' `aclocal.m4' `configh.in' `configure.in' `configure' `custom.h' `missing/*' Эти файлы и подкаталог используются при конфигурации gawk для различных систем Unix. Они описаны детально в разделе B.2 [Компиляция и установка gawk в Unix], стр. 284.

    `awklib/extract.awk' `awklib/Makefile.in' Каталог `awklib' содержит копию `extract.awk' (см. раздел 16.2.7 [Извлечение программ из Texinfo Source Files], стр. 238), которая может использоваться для извлечения примеров программ из Texinfo source file для настоящей книги, и файла `Makefile.in' file, который сценарий конфигурирования использует для генерации `Makefile'. Как часть процесса построения gawk, библиотечные функции из главы 15 [Библиотека функций awk], стр. 169, и программы igawk из раздела 16.2.9 [Простой способ использования библиотеки функций], стр. 244, извлечены в готовом виде для использования. Они установлены как часть процесса установки.

    `atari/*' Файлы, необходимые для построения gawk на Atari ST. См. детали в разделе B.5 [Установка gawk на Atari ST], стр. 289.

    `pc/*' Эти файлы необходимы для построения gawk под MS-DOS и OS/2. См. детали в разделе B.4 [MS-DOS и OS/2, установка и компиляция], стр. 288.

    `vms/*' Файлы, нужные для построения gawk под VMS. См. подробности в разделе B.3 [Как компилировать и устанавливать gawk на VMS], стр. 285.

    `test/*' Набор тестов для gawk. Можно использовать `make check' из верхнего уровня каталога gawk для запуска вашей версии gawk на наборе тестов. Если gawk успешно передаст `make check', то вы можете быть уверены в успешности его переноса.

    B.2 Компиляция и установка gawk на Unix

    В начало страницы

    Обычно для компиляции и установки gawk достаточно выдать две команды. Однако, если используется необычная система, может оказаться необходимым вам самим сконфигурировать gawk для вашей системы.

    B.2.1 Компиляция gawk для Unix

    В начало страницы

    После извлечения поставки gawk, смените каталог на `gawk-3.0.4'. Подобно большинству программ GNU, gawk конфигурируется автоматически для системы Unix запуск программы конфигурации. Эта программа представляет сценарий оболочки Bourne, который был сгенерирован посредством GNU autoconf. (Программное обеспечение autoconf полностью описано в Autoconf--Generating Automatic Configuration Scripts, который доступен в Free Software Foundation.)

    Чтобы конфигурировать gawk, просто запустите sh ./configure. Это даст `Makefile' и `config.h', подогнанный к вашей системе. Файл `config.h' описывает различные факты о вашей системе. Вы можете захотеть отредактировать `Makefile' для изменения переменной CFLAGS, которая управляет параметрами командной строки, передаваемыми компилятору Cи (такими как уровни оптимизации или компиляцией для отладки).

    Вы также можете добавить ваши собственные значения для большинства make-переменных, таких как CC и CFLAGS, в командной строке при исполнении конфигурации:

    CC=cc CFLAGS=-g sh ./configure
    См. детали в файле `INSTALL' из поставки gawk.

    После завершения конфигурации и возможного редактирования `Makefile', выдайте команду make, и вскоре после этого вы получите рабочую версию gawk. Вот и все! (Если эти шаги не удадутся, пошлите пожалуйста сообщение об неполадках; см. раздел B.7 [Сообщения о конфликтах и ошибках], стр. 292.)

    B.2.2 Процесс конфигурации

    В начало страницы

    (Этот раздел представляет интерес только если вы знаете что-то об употреблении языка Cи и операционной системе Unix.)

    Исходный код для gawk вообще старается придерживаться формальных стандартов там, где это возможно. Это значит, что gawk использует библиотечные подпрограммы, соответствующие стандарту ANSI C и стандарту POSIX для интерфейса c операционной системой. При использовании компилятора ANSI C, прототипы функций используются для помощи в улучшении проверки во время компиляции.

    Многие системы Unix не поддерживают всех стандартов ни ANSI ни POSIX. `Пропавшие' подкаталоги в поставке gawk содержат замещающие версии тех подпрограмм, которые наиболее вероятно будут опущены.

    Файл `config.h', который создается программой конфигурации, содержит определения, описывающие свойства конкретной операционной системы, в которой вы пытаетесь скомпилировать gawk. В этом файле описаны три факта: что головные файлы доступны и могут быть правильно включены, что (предположительно) стандартные функции фактически доступны в ваших библиотеках Cи, а также другие различные факты о вашем варианте Unix. Например, может не оказаться элемента st.blksize в статической структуре. В этом случае `HAVE.ST.BLKSIZE' будет неопределенным.

    Возможно, что ваш Cи-компилятор войдет в конфигурацию. Это может оказаться так из-за невыхода по ошибке при не обнаружении библиотечной функции. Чтобы обойти это, нужно отредактировать файл `custom.h'. Используйте `#ifdef', который подходит для вашей системы, и либо #define все константы, которые должна определить конфигурация, но не сделала этого, или #undef все константы, которые конфигурация определила, хотя и не должна была это делать. `custom.h' автоматически включается посредством `config.h'.

    Также возможно, что программа конфигурации, порожденная посредством autoconf, не будет работать на вашей системе в какой-то иной форме. Если у вас какие-то неприятности, файл `configure.in' есть ввод для autoconf. Вы можете изменить этот файл и сгенерировать новую версию конфигурации, которая будет работать на вашей системе. См. раздел B.7 [Сообщения о конфликтах и ошибках], стр. 292, о том как сообщать о неудачах при конфигурировании gawk. Тот же самый механизм можно использовать для посылки исправлений в `configure.in' и/или `custom.h'.

    B.3 Как компилировать и устанавливать gawk на VMS

    В начало страницы

    В этом разделе описывается компиляция и установка gawk под VMS.

    B.3.1 Компиляция gawk на VMS

    В начало страницы

    Для компиляции gawk под VMS, имеется командная процедура DCL, которая выдаст все необходимые команды CC и LINK, и также имеется `Makefile'для использования с утилитой MMS. Из исходного каталога возьмите или

    
    $ @[.VMS]VMSBUILD.COM
    или
    $ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK
    

    В зависимости от того, какой Cи-компилятор используется, следуйте одному из наборов инструкций в таблице:

    VAX C V3.x
    Используйте или `vmsbuild.com' или `descrip.mms' как есть. Они используют CC/OPTIMIZE=NOLINE, который существеннен для версии 3.0.

    VAX C V2.x
    Вы должны иметь версию 2.3 или 2.4; более старые не будут работать. Отредактируйте или `vmsbuild.com' или `descrip.mms' в соответствии с комментариями в них. Для `vmsbuild.com' это повлечет удаление двух ограничителей `!'. Также отредактируйте `config.h' (это копия файла `[.config]vms-conf.h') и закомментируйте или удалите две строки `#define ..STDC.. 0' и `#define VAXC.BUILTINS' возле конца.

    GNU C
    Отредактируйте `vmsbuild.com' или `descrip.mms'; изменения отличны от изменений для VAX C V2.x, но имеют тот же смысл. `config.h' в изменениях не нуждается.

    DEC C
    Отредактируйте `vmsbuild.com' или `descrip.mms' согласно комментариям в них. `config.h' не нуждается в изменениях.

    gawk тестировался под VAX/VMS 5.5-1 с использованием VAX C V3.2, GNU C 1.40 и 2.3. Это должно работать без изменений для VMS V4.6 и следующих версий.

    B.3.2 Установка gawk на VMS

    В начало страницы

    Для установки gawk нужна только "иностранная" команда, которая есть символ DCL и начинается с знака доллара.

     Например:
     
      $ GAWK :== $disk1:[gnubin]GAWK
    

    (Подставьте фактическое расположение gawk.exe вместо `$disk1:[gnubin]'.) Символ должен быть помещен в `login.com' любого пользователя, кто хочет выполнять gawk, так что он будет определен каждый раз, когда пользователь входит в систему. Как альтернатива, символ может быть помещен в системную процедуру `sylogin.com', которая будет позволять всем пользователям выполнять gawk.

    При желании вход в help может быть загружен в VMS help-библиотеку: $ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP (Можно, если хотите, подставить ориентированную на сайт библиотеку help вместо стандартной библиотеки VMS `HELPLIB'.) После загрузки текста help $ HELP GAWK выдаст информацию и о реализации gawk и о программном языке awk.

    Логическое имя `AWK.LIBRARY' может обозначать используемое по умолчанию место для программных файлов awk. При параметре `-f' , если указанное имя файла не содержит информации об устройстве или пути в каталог, gawk будет сначала искать его в текущем каталоге, затем в каталоге, указанном трансляцией `AWK.LIBRARY', если файл не найден. Если после поиска в обоих каталогах файл все еще не будет найден, то gawk припишет окончание `.awk' к имени файла и повторит его поиск. Если `AWK.LIBRARY' не определена, эта часть поиска окажется бесполезной.

    B.3.3 Выполнение gawk на VMS

    В начало страницы

    Поиск в командной строке и соглашения о кавычках значительно отличаются на VMS, так что примеры из настоящей книги или из других источников должны быть немного изменены и тогда они будут исполняться правильно.

    Вот несколько тривиальных тестов:
    
    $ gawk -- "BEGIN -print ""Hello, World!"""""
    $ gawk -"W" version ! could also be -"W version" or "-W version"
    
    

    Заметим, что верхне-регистровые и смешанные тексты должны быть в кавычках. VMS-вариант gawk включает интерфейс в стиле DCL в дополнение к оригинальному интерфейсу в стиле shell (см. подробности в help). Один побочный эффект от двойного анализа командной строки есть то, что если имеется только один параметр (как в закавыченной строке в приведенной выше программе), то команда становится двусмысленной. Чтобы обойти это, требуется обычно необязательный флажок `--' , чтобы вызвать стиль Unix вместо анализа по DCL. Если присутствуют какие-нибудь другие параметры типа dash (или кратные параметры, такие как файлы с данными для обработки), то двусмысленности нет и `--' можно опустить.

    По умолчанию путь поиска программных файлов, указанных параметром `-f', есть "SYS$DISK:[],AWK.LIBRARY:". Логическое имя `AWKPATH' можно использовать для его изменения. Формат `AWKPATH' есть разделенный запятыми список каталогов. При составлении его значения надо брать в кавычки, чтобы сохранялся единственный перевод, а не много переводный список поиска RMS.

    B.3.4 Построение и использование gawk на VMS POSIX

    В начало страницы

    Игнорируйте приведенные выше инструкции, хотя `vms/gawk.hlp' должен оставаться доступным в библиотеке help. Исходное дерево должно быть распаковано в файловую систему container вместо обычной файловой системы VMS. Убедитесь, что сценарии `configure' и `vms/posix-cc.sh' выполнимы; используйте `chmod +x' на них, если нужно. Затем выполните две следующих команды:

    psx? CC=vms/posix-cc.sh configure psx? make CC=c89 gawk

    Первая команда построит файлы `config.h' и `Makefile' из трафаретов, используя сценарий для подгонки Cи-компилятора к требованиям конфигурации. Вторая команда компилирует и редактирует gawk, используя непосредственно компилятор Си; игнорируйте все предостережения от make о том, что он не может переопределить CC. Конфигурация потребует очень много времени для исполнения, но она обеспечивает увеличивающуюся обратную связь в процессе исполнения. Это было проверено с VAX/VMS V6.2, VMS POSIX V2.0 и DEC C V5.2.

    Если построена, gawk будет работать подобно всем другим утилитам оболочки. В отличие от обычно перенесенной на VMS gawk, здесь не нужны специальные манипуляции в командной строке в окружении VMS POSIX.

  • В начало страницы

    <<< Оглавление Страница: Приложение B  продолжение >>>