Руководство
пользователя для GNU Awk
Arnold
D. Robbins
перевод Балуева А. Н.
Оглавление
Приложение
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.
|