Руководство пользователя для GNU Awk
Приложение B. Установка gawk
Это приложение содержит инструкции для установки gawk на различных платформах, которые поддерживаются разработчиками. Первые разработчики поддерживали Unix (и одновременно GNU), потом были реализованы и другие переносы. Файл `ACKNOWLEDGMENT' в поставке gawk перечисляет электронные адреса лиц, осуществивших такие переносы. Они также указаны в разделе B.7 [Обнаруженные нестыковки и ошибки], стр. 292. B.1 Распространение gawkВ этом разделе сначала описывается, как получить поставку gawk, как извлечь, и что содержится в различных файлах и подкаталогах. B.1.1 Получение поставки gawk
Имеются три пути получения программного обеспечения GNU. 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.*' `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 После завершения конфигурации и возможного редактирования `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
VAX C V2.x
GNU C
DEC C 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 продолжение | >>> |