GAP v.4 компьютерная алгебра (правила установки)

перевод Балуева А.Н. (мат-мех факультет СПбГУ)

Содержание

  • Установка для нетерпеливых
  • Получение GAP
  • GAP для UNIX
  • Установка GAP для UNIX
  • Известные проблемы в процессе конфигурации
  • Проблемы с отдельными системами
  • Перенос GAP
  • Документация
  • Установка HTML Font
  • Если дела обстоят плохо
  • Установка XGAP

    Этот документ описывает правила установки GAP 4 в системе Unix. Раздел "Получение GAP" описывает, где взять GAP 4 и из каких файлов. Раздел "Установка GAP в UNIX" описывает процесс установки. Section "Перенос GAP" описывает, что нужно сделать для переноса GAP 4 в другие системы.

    Установка для нетерпеливых

    В начало страницы
       
       Поскольку GAP поддерживает три разных платформы, а именно Windows,
       Macintosh и Unix, процесс установки несколько отличается от обычного.
       Настоящий документ объясняет в деталях, какие файлы брать и как
       устанавливать систему. Если Вы неопытны, мы настоятельно рекомендуем
       строго следовать предлагаемому описанию.
    
       Если Вы уже имеете опыт в установке GAP или не собираетесь читать
       инструкции по установке, настоящий раздел на всякий случай предлагает
       краткий обзор. (Если здесь что-нибудь непонятно или приводит к проблемам,
       действуйте согласно данным ниже подробным инструкциям!)
    
       Возьмите файлы : двоичный unzoo, установочные архивы и bugfix .
       Выполните
       unzoo -x archive.zoo
       cd gap4r2
    
       Если имеются ошибки, извлеките их с помощью:
       unzoo -x ../fixXX4r2.zoo
    
       Для двоичной компиляции произведите вызов
       ./configure
    
       и вы получите сценарий оболочки bin/gap.sh для запуска GAP, который
       вы можете скопировать стандартным путем.
    
       Пошлите по адресу gap@dcs.st-and.ac.uk извещение для нас об установке.
    
       Вы можете также распаковать и установить сомместные пакеты в каталоге
       pkg.
    
       Заметим, что некоторые детали могут отличаться от указанных в последнем
       выпуске.
    
    

    Получение GAP

    В начало страницы
     
    
       GAP распространяется свободно, без оплаты. Вы можете получить его через
       ftp и передать вашим коллегам. Однако, он не является публичной
       собственностью (_not_ in the public domain). В частности, GAP или его
       части нельзя включать в коммерческие продукты.
    
       Если Вы получили GAP, мы будем очень признательны, если Вы известите нас,
       послав, например, короткое сообщение по e-mail в gap@dcs.st-and.ac.uk,
       содержащее Ваше полное имя и адрес, чтобы мы имели представление о
       круге пользователей. Мы надеемся также, что этот круг пользователей
       будет достаточно широк, чтобы убедить различные организации в том, что
       GAP есть проект, заслуживающий (фиансовой) поддержки. Если Вы опубликуете
       какие-нибудь результаты, которые частично получены с помощью GAP,
       мы будем очень признательны Вам, если Вы сошлетесь на GAP, как и на
       другие использованные работы (copyright-страница настоящего руководства
       содержит пример такого цитирования.) Мы также будем признательны за
       информацию о такой публикации.
    
       Текущий выпуск GAP содержит версию 4.2.
    
       Мы распространяем исходную форму всего: С-код ядра, GAP-код библиотеки,
       TeX-код руководства. Поэтому не будет никаких проблем с получением  GAP,
       даже если ваша система является необычной. Конечно, перенос на системы,
       отличные от UNIX, потребует какой-то работы. Заметим, что примерно 16 MB
       главной памяти (хотя желательны по крайней мере  32MB) и около  30MB на
       диске необходимы для запуска GAP. Полная установка  GAP, включающая
       все совместные пакеты и библиотеки данных, может потребовать 200MB и
       больше дискового пространства. GAP будет компилировать на
       процессорах pentium (586), хотя желательна более быстрая машина.
    
       (Если Вы уже загрузили установочный архив, то можете пропустить остаток
    даного раздела.)
    
       Самый простой способ получения  GAP для большинства пользователей, вероятно,
       есть WWW. Главный Web-сайт  GAP находится в
       http://www-gap.dcs.st-and.ac.uk/gap
    
       Имеются три зеркальных сайта, которые обновляются автоматически каждую
       ночь:
       http://www.math.rwth-aachen.de/~GAP,  http://www.ccs.neu.edu/mirrors/GAP
       и http://wwwmaths.anu.edu.au/research.groups/algebra/GAP/www/
    
       На этих сайтах Вы можете просмотреть настоящее руководство, загрузить
       систему  и добавленные расширения, прочесть последние рассылки к
       общественности GAP, найти сведения об авторах добавлений к GAP,
       публикации, цитирующие  GAP и связанные с GAP события.
    
       GAP может также быть получен анонимными  _ftp_ от (по крайней мере)
       следующих серверов.
    
       ftp-gap.dcs.st-and.ac.uk:
              School of Mathematical and Computational Sciences, University
              of St Andrews, Scotland, UK. Directory /pub/gap/gap4/.
       ftp.math.rwth-aachen.de:
              Lehrstuhl D fcr Mathematik, RWTH Aachen, Germany. Directory
              /pub/gap4/.
       ftp.ccs.neu.edu:
              College of Computer Science, Northeastern University, Boston,
              USA. Directory
              /pub/mirrors/ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4.
       pell.anu.edu.au:
              School of Mathematical Sciences, Australian National
              University, Canberra, Australia. Directory /pub/algebra/gap4/.
    
       Свяжитесь по системе ftp с ближайшим сервером, войдите как пользователь
       в ftp и сообщите Ваш полный  e-mail адрес в качестве пароля. Не
       забудьте при передаче файлов установить тип передачи  _binary image_,
       иначе Вы получите непонятный мусор. Названные серверы всегда имеют
       последнюю доступную версию GAP.
    
       WWW-страница для распространения GAP и каталог ftp содержат следующие
       файлы. Проверьте сначала, какие файлы Вам нужны, чтобы избежать ненужные
       передачи.
    
       INSTALL, INSTALL.WIN, INSTALL-MAC.TXT:
              Установочные файлы, один из которых Вы сейчас читаете.
       FILES:
              Более детальное описание доступных файлов.
       gap4r2.zoo:
              этот файл содержит полный комплект паставки GAP версии  4.2.
       basic4r2.zoo:
              этот фай содержит минимальный комплект поставки GAP версии 4.2.
              (Имеются другие архивы, с помощью которых можно ``расширить'' его
              до полной версии.)
       gappc4r2.zoo:
              Этот файл содержит полный комплект поставки для 32-bit Windows.
              Включает предкомпилированный двоичный вариант.
       gapmac4r2.zoo:
              Этот файл содержит полный комплект поставки для  Macintosh под
              MacOS. Можно также отдельно получить двоичный вариант из
              подкаталога  bin.
       allshare4r2.zoo:
              Этот файл содержит все приемлемые совместные пакеты в последней
              редакции.
       submitshare4r2.zoo:
              Этот файл содержит все подчиненные но не принятые совместные
              ракеты, авторы которых хотят сделать их доступными, в последней
              редакции. Их можно расматривать как препринты.
       util/unzoo.c:
              Простой экстрактор из архива  zoo, используемый для распаковки
              поставок. Подкаталог bin содержит прекомпилированные исполнимые
              программы для  обычных систем.
              Многие файлы содержатся в следующих подкаталогах:
       bin:
              Здесь содержатся выполнимые файлы для систем, которые не приходят
              с С-компилятором или где другой С-компилятор генерирует более
              быстрые программы.
       split:
              Этот каталог содержит полный комплект поставки GAP 4.2 в нескольких
              меньших архивах.
       share:
              Этот каталог содержит отдельно все принятые совместные пакеты на
              тот случай, если Вы не хотите загружать полные совместные архивы.
       deposit/psh:
              Этот каталог содержит все подчиненные не принятые совместные пакеты,
              авторы которых хотят хотят сделать их доступнымиe, на случай,
             что вы не хотите загружать комплексные соместно подчиненные
             архивы.
    
    

    GAP для UNIX

    В начало страницы
     
       GAP работает очень хорошо под UNIX. Он и построен фактически на рабочих
       станциях UNIX. И если он исполняется на какой-нибудь UNIX-машине, он
       ведет себя точно так, как написано в руководстве.
    
       GAP был успешно компилирован и установлен на следущих UNIX-машинах:
       DECalpha под OSF 3.2 с GNU cc 2 или cc,
       HP9000 под HP-UX с GNU cc 2,
       IBM PC под Linux с GNU cc 2,
       IBM RS/6000 & AIX с GNU cc 2, SGI Mips под IRIX 5/6 с gcc2 или
       cc, Sun Sparc под Solaris с GCC 2 или cc.
    
       Мы надеемся, компиляция и установка GAP на других UNIX-машинах не
       составит никаких проблем. А если будут, пожалуйста информируйте нас об
       ваших проблемах (и, если можно, о Вашем решении).
    
       Раздел  "Установка  GAP для UNIX" описывает, как устанавливается GAP на
       UNIX-машине. См. главу "Исполнение GAP" для информации о вариантах
       командной строки, которые GAP имеет под UNIX.
    
    

    Установка GAP для UNIX

    В начало страницы
       Устанавливать GAP на UNIX-машине  довольно легко. Получите файлы,
       описанные в "Получение GAP" и решите, в каком каталоге Вы хотите
       установить GAP 4.2. Если Вы будете единственным пользователем GAP, его
       целесообразно установить в Вашем начальном каталоге. Если и
       другие пользователи также будут употреблять GAP, его нужно разместить
       в публичном месте, таком как /usr/local/lib/. GAP будет установлен
       в подкаталоге  gap4r2 этого каталога. Вы можете потом переместить GAP
       в другое место. Например, Вы можете сначала установить его в начальном
       каталоге и, если он работает, переместить его в  /usr/local/lib/.
    
       В следущих примерах по установке предполагается, что Вы (как
       пользователь на машине  Unix) устанавливаете GAP в каталоге /usr/local/lib
       на машине  Pentium Pro под  Linux.
    
       Заметим, что некоторые части выхода в примерах должны рассматриваться как
       приблизительные. Осбенно размеры файлов и их даты нельзя воспринимать
       буквально.
    
       Если встретятся проблемы, обратитесь к разделу " Если дела обстоят плохо"
       этого документа.
    
       Возьмите поставку gap4r2.zoo и источник для экстрактора из zoo архива
       unzoo.c. Как получить эти файлы, написано в "Получение GAP". Помните,
       что поставка состоит из двоичных файлов и Вы должны пересылать их в
       двоичной форме.
    
       Скомпилируйте экстрактор unzoo из архива zoo командами
    
       you@unix> cc -o unzoo -DSYS_IS_UNIX -O unzoo.c
       you@unix> ls -l unzoo
       -rwxr-xr-x you 45056 Nov 3 10:11 unzoo
       you@unix>
    
       Теперь распакуйте поставку командами
    
       you@unix> ./unzoo -x gap4r2.zoo
       gap4r2/doc/aboutgap.tex -- извлечено как текст
       gap4r2/doc/aggroup.tex  -- извлечено как текст
       [гораздо больше строк]
       you@unix>
    
       Если Вы получили не полный поставочный файл, а несколько меньших файлов,
       извлеките их все (за исключением  bug fixes и совместных пакетов!) таким
       же образом.
    
       (Впоследствии файл gap4r2.zoo Вам будет не нужен. Если у Вас мало дискового
       пространства, Вы можете теперь его удалить.)
       you@unix> rm gap4r2.zoo
    
       Теперь перейдите в каталог gap4r2. Если вы получили какие-нибудь исправления
       ошибок, извлеките их оттуда. Исправления ошибок извлекаются только на этом
       уровне, чтобы сделать их действенными даже в том случае, если Вы потом
       переименуете корневой каталог Вашей поставки GAP. Заметим, что исправлений
       ошибок нет в начальном выпуске, но потом они неминуемо появятся. Вы сможете
       найти их в каталоге bugfixes на нашем сервере ftp. Если имеютя более одного
       такого файла fix, сначала распакуйте fix1, затем  fix2, и т.д.
    
       you@unix> cd gap4r2
       you@unix> ../unzoo -x ../fixXX4r2.zoo
       [далее идет информация об извлечении]
    
       Если Вы имеете совместные пакеты, извлеките их в подкаталог  pkg таким же
       образом. Например, если Вы получили  allshare4r2.zoo и submitshare4r2.zoo
       архивы, Вы должны написать:
    
       you@unix> cd pkg
       you@unix> ../../unzoo -x ../../allshare4r2.zoo
       you@unix> ../../unzoo -x ../../submitshare4r2.zoo
       you@unix> cd ..
    
       Каталоги tbl, tom, trans, small и prim содержат библиотеки данных. Если
       у Вас мало места на диске, можно стереть некоторые из них, но тогда,
       конечно, у Вас не будет доступа к этим данным.
    
       В  UNIX, мы теперь используем метод  ``автоконфигурации'', чтобы учесть
       зависимости систем. (См. "Перенос GAP", если это не работает на Вашей
       машине.)
    
       Если Вы устанавливаете  GAP на различных системах с совместно используемой
       файловой системой и Вы уже установили GAP на другой машине, Вы должны
       сначала убрать файлы config.cache и config.status!
    
       Затем выполните конфигурацию сценария оболочки:
    
       you@unix> ./configure
       checking host system type... i686-unknown-linux2.0.27
       [много следующих строк]
    
       Это будет автоматически определять машины и цели компиляции. Процесс
       автоматически создаст соответствующий двоичный подкаталог. Он также
       создаст make-файл, который будет использован для компиляции GAP на
       этой машине. Просто вызовите make:
    
       you@unix> make
       [много строчек дальнейшей конфигурации и компиляции]
    
       Если конфигурация или make не пройдут, смотрите раздел "Известные
       проблемы процесса конфигурации", где описаны некоторые средства.
    
       Если Вы обладаете опытом работы с UNIX, Вы можете захотеть изменить
       параметры компиляции, чтобы получить лучшие рабочие характеристики.
       Раздел "Организация и параметры компилятора" объяснят Вам, как это сделать.
    
       Процесс компиляции создает объектные  и исполнимые файлы в каталоге
       /usr/local/lib/gap4r2/bin/target/, где  target есть имя, напечатанное
       при первой конфигурации. В нашем примере выполнимый файл будет создан
       как  /usr/local/lib/gap4r2/bin/i686-unknown-linux2.0.27/gap
    
       Автоматическая конфигурация будет работать на любой системе UNIX. А если
       нет, пожалуйста сообщите нам по адресу  gap-trouble@dcs.st-and.ac.uk.
    
       Для того, чтобы проверить результат компиляции, запустите вновь
       скомпилированную программу. Вы должны получить титул GAP и затем приглашение
       GAP.
       Процесс старта GAP требует несколько больших усилий:
    
       you@unix> cd ..
       you@unix> bin/i686-unknown-linux2.0.27/gap -l /usr/local/lib/gap4r2
       [... не указанные строки]
       gap>
    
       (Указывать путь к библотеке каждый раз с помощью параметра  -l было бы
       довольно скучно. Поэтому ниже мы установим сценарий оболочки для старта  GAP.)
    
       Попробуйте несколько действий для проверки успеха компиляции.
    
       gap> 2 * 3 + 4;
       10
       gap> Factorial( 30 );
       265252859812191058636308480000000
       gap> Size( SymmetricGroup( 10 ) );
       3628800
       gap> Factors( 10^42 + 1 );
       [ 29, 101, 281, 9901, 226549, 121499449, 4458192223320340849 ]
       gap> m11 := Group((1,2,3,4,5,6,7,8,9,10,11),(3,7,11,8)(4,10,5,6));;
       gap> Size( m11 );
       7920
       gap> Factors( 7920 );
       [ 2, 2, 2, 2, 3, 3, 5, 11 ]
       gap> Length( ConjugacyClasses( m11 ) );
       10
    
       Обязательно проверьте действию по редактированию командной строки и ее
       истории, потому что эти функции GAP, повидимому, наиболее машинно
       зависимы. Введите несколько команд и проверьте, что  ctr-P возвращает
       предыдущую команду, ctr-E перемещает курсор в конец строки, ctr-B
       перемещает курсор обратно на одну позицию, а ctr-D убирает один символ.
       Так что если после ввода приведенных выше команд Вы  напечатаете
    
       ctr-P ctr-P ctr-E ctr-B ctr-B ctr-B ctr-B ctr-D 1 return
    
       то получите следующие строки:
    
       gap> Factors( 7921 );
       [ 89, 89 ]
    
       Если Вы можете компилировать, но редактирование командной строки не
       не работает, Вы можете всегда запустить  GAP с параметром  -n чтобы
       выключить редактирование командных строк. И в этом случае мы просим
       собщить нам о возникшей проблеме.
    
       Если в Вашей операционной системе есть управление заданиями, вы все равно
       можете останавливать GAP, что обычно делается нажимом ctr-Z.
    
       Make-процесс должен также создать сценарий оболочки  gap.sh в
       подкаталоге bin. Этот файл содержит необходимые пути, и можно запустить
       GAP простым вызовом этого сценария. Но Вы можете редактировать его, чтобы
       включить другие априорные возможности командной строки или изменить
       априорную память.
    
       Выполните сценарий для повторного запуска GAP:
       you@unix> bin/gap.sh
    
       Если оболочка ответит, что не может выполнить или найти  gap.sh,
       проверьте допустимость файла, выполнив  ls -l bin/gap.sh. Допуски
       должны включать допуски на выполнение. Если нет, Вы можете установить
       их посредством
       you@unix> chmod +x bin/gap.sh
    
       Затем скопируйте этот сценарий в каталог по Вашему маршруту поиска,
       например,  /usr/local/bin/ как gap (или gap4, если у Вас уже есть
       GAP 3 для исполнения на той же машине). (Если Вы пользуетесь
       C-sheli, Вы должны также это переделать, поскольку  C-shell добавляет
       gap к своим внутренним таблицам).
       Если Вы потом перенесете GAP в другое место, Вам только нужно будет
       отредактировать этот сценарий.
    
       В том же месте имеется сценарий оболочки  gac, который может запускать
       компилятор. В зависимости от вашей установки вы можете также захотеть
       скопировать его в каталог на вашем маршруте поиска.
    
       Теперь Вы можете запускать GAP по его имени:
    
       you@unix> cd ~
       you@unix> gap
    
       (Если Вы получите сообщение об ошибке ``hmm, I cannot find lib/init.g'',
       это значит, что Вы запускаете чисто двоичный вариант, для чего нужно
       найти библиотеку, которая выдается через параметр  -l в командной строке.)
    
       Имеется совокупность тестовых файлов. Исполнение их всех на машине
       Pentium Pro 200 Mhz занимает 40 минут. В качестве быстрого теста мы
       запускаем сначала  combinat.tst
    
       gap> Filename( DirectoriesLibrary("tst"), "combinat.tst" );
       "/usr/local/lib/gap4r2/tst/combinat.tst"
       gap> ReadTest(last);
       + $ld: combinat.tst,v 4.7 1997/11/21 10:19:47 ahulpke Exp $
       + GAP4stones: 27801
       true
    
       Число, выдаваемое как  GAP4stones, меняется в зависимости от скорости
       машины.
    
       Теперь воспользуемся  Read (_не_ ReadTest) для считывания файла
       testall.g для выполнения  _всех_  имеющихся тестовых файлов. Это не
       является необходимой частью установки, а только служит подтверждением того,
       что все в порядке. Полный набор тестов требует порядочно времени (почти
       2 часа на Pentium  III/500) и около  100MB памяти, так что Вы,
       возможно, пропустить этот шаг или выполнить только часть тестов. Это
       не причинит вреда.
    
       gap> Filename( DirectoriesLibrary("tst"), "testall.g" );
       "/usr/local/lib/gap4r2/tst/testall.g"
       gap> Read(last);
       [опущенные строки]
       test file         GAP4stones     time(msec)
       -------------------------------------------
       testing: ./tst/boolean.tst
       boolean.tst                0              0
       testing: ./tst/unknown.tst
       unknown.tst                0             10
       testing: ./tst/gaussian.tst
       gaussian.tst               0            250
       [последующие строки опущены]
    
       Вы можете игнорировать предостережения от weakptr.tst, которые возникают
       при сборе мусора, случающегося в различные моменты, и от grpconst.tst,
       которые вызываются различиями в доступных совместных пакетах.
    
       Информация о руководстве системонезависима, ее можно найти в разделе
       "Документация".
    
       Если Вы уже установили совместные пакеты, требующие внешних двоичных,
       то теперь перейдите к каталогам совместных пакетов (каталогов pkg)
       и следуйте инструкциям, данным там для компиляции их двоичных.
    
       Некоторые совместные пакеты установлены для загрузки или предоставления
       документации автоматически. Чтобы задействовать это, Вы должны перечислить
       все пакеты в файле ALLPKG в  pkg-каталоге (подробности см. в разделе
       "Загрузка совместных пакетов" в справочном руководстве). В UNIX самый
       простой  путь для этого состоит в выдаче команды
    
        find * -type d -maxdepth 0 -print > ALLPKG
    
       в каталоге pkg.
    
       Если Вы хотите установить GAP также на машине с другой архитектурой, которая
       совместно пользуется той же файловой системой, что и маiина, на которой GAP
       только что установлен, войдите в эти машины и перейдите в начальный каталог
       GAP. Вам не понадобится извлекать какие-нибудь новые файлы, просто выполните
       снова тот же самый процесс ``configure/make'', описанный выше. Не забудьте
       предварительно скопировать сценарии оболочrи bin/gap.sh и bin/gac,
       образованные make-процессом, так как они системозависимы и будут переписаны
       при компиляции на другой системе.
    
       И несколько финальных замечаний: проверьте, что Вы получили и установили
       все исправения ошибок. Мы будем признательны, если после установки Вы
       пошлете нам короткое сообщение по  gap@dcs.st-and.ac.uk (даже если Вы
       раньше установили GAP3). Мы предлагаем также Вам подписаться на наш
       gap-forum mailing list, см. детали в GAP web pages.
    
       Это все, установка закончена. Мы надеемся, что Вы будете довольны, пользуясь
       GAP. При возникновении каких-нибудь проблем без колебаний вступайте с нами в
       контакт по  gap-trouble@dcs.st-and.ac.uk.
    
    

    Известные проблемы в процессе конфигурации

    В начало страницы
       Если  make выдает сообщение ``Do not know how to make xyz'', хотя  xyz ---
       существующий файл, дело вероятно в том, что даты файлов извлечены
       неправильно (Alpha-OSF подвержены этому). Вызовите
    
       touch * cnf/* src/*
    
       из главного каталога  GAP  (Это должно переменить дату всех относящихся
       файлов на ``теперь'') и попробуйте снова.
    
       Изредка процесс конфигурации не понимает ``inline'' (т.е. диалоговых)
       команд компилятору. Если Вы получите сообщение, что ``inline''неизвестна,
       отредактируйте файл config.h в  подкаталоге bin/target и замените строку
    
       /* #undef inline */
    
       на
    
       #define inline
    
       и попробуйте компилировать снова.
    
       Сценарий конфигурции соответствует установкам, данныв в переменных
       окружения. Эти установки могут противоречить данным в автоматическом
       конфигурационном процессе. Если конфигурация выдает странные сообщения о
       том, что не может продолжать компиляцию, проверьте значения переменных,
       которые могут влиять на компиляцию (в частности, CC, LD, CFLAGS,
       LDFLAGS и C_INCLUDE_PATH) и измените их с помощью  unsetenv.
    
       Некоторые пользователи соообщают о проблемах с make при работе версии
       GNU  gmake. В таких случаях нужно попрбовать вместо нее gmake, если
       она установлена на вашей машине.
    
    

    Проблемы с отдельными системами

    В начало страницы
     
    
       Высшие уровни оптимизации, обеспеяиваемые OSF/4 C компиляиором сс на
       Compaq alpha chip, предполагают употребление указателей, которые не
       действуют для  GAP, и выдают программы, которые приводят к краху.
       -O3 кажется безопасным, но  -O4 и -fast таковыми не являются.
    
       На системах  Sun и Irix, которые способны работать в режимах 32 или  64
       бит, возможно строить на GAP 64-битовую версию, но для этого необходимы
       специальные процедуры (и, для Sun, должны быть обойдены ошибки компилятора). 
       Если Вы хотите компилировать такую систему, пошлите запрос по адресу
       gap-trouble@dcs.st-and.ac.uk|.
    
    

    Перенос GAP

    В начало страницы
       Перенос GAP в другую операционную систему не должен быть оченеь трудным.
       Однако, GAP ожидает, что операционная система и компилятор обладают
       определенными свойствами. И с переносом  GAP в систему или с компилятором,
       не обладающими ожидаемыми свойствами, могут возникнуть значительные
       затруднения.
    
       Дизайн GAP способствует ее переносимости. GAP состоит из небольшого ядра,
       написанного на программном языке C, и обширной библиотеки, написанной на
       программном языке, предусмотренном в ядре GAP, который также
       называется GAP.
    
       Если ядро перенесено, библиотека не составляет дополнительных проблем,
       потому что все ее функции требуют только, чтобы работало ядро, и не
       предъявляют никаких дополнительных требований к окружению.
    
       Само ядро разделено на часть, которая содержит независимую операционную
       систему и компилятор, и файл, содержащий все зависимые от операционной
       системы и компилятора функции. Обычно только этот файл нужно изменять
       для переноса GAP к новой операционной системе.
    
       Теперь бросим взгляд на минимальные требования GAP к операционной
       системе и машине.
    
       Необходимо достаточное количество памяти в вашем компьютере. Размер
       ядра GAP колеблется в пределах от 1.5 до  2.5 MB  (в зависимости от
       машины). Библиотека  GAP дополнительно требует как минимум  10MB,
       библиотечные функции, загружаемые GAP, требуют еще 1.5 MB. Так что ясно,
       что для серьезных работ с GAP требуются по крайней мере 16 MB главной
       памяти.
    
       Дополнительно, ядро GAP нуждается в плоском адресном пространстве, т.е.
       вся память должна быть доступна в виде одного связного куска.
    
       Из этого следует, что не имеет смысла стараться перенести GAP на простую
       MS-DOS, работающую на IBM PC или совместимых с ней. Версия GAP для
       машин, совместимых с IBM PC, которую мы поставляем, работает на машинах с
       с Intel 80486, Pentium или выше процессорами под 32-bit Windows. (Это
       необходимо, потому что, как было сказано выше, GAP требует память в виде
       большого плоского адресного пространства.)
    
       Теперрь рассмотрим требования компилятора Си и его библиотеки.
    
       Как уже упоминалось, ядро GAP напмсано на языке Cи. Мы старались
       использовать как можно меньше возможностей языка Си. GAP легко
       компилировался компилятором, построенным согласно старым определениям
       Карнигана и Ричи и компилятором, основанном на определениях из стандарта
       ANSI-C.
    
       Перенос GAP на другой  UNIX не должен быть трудным. Нужны только самые
       основные представления о Cи и UNIX. Если же Вы собираетесь перенести  GAP
       на не-UNIX систему, войдите в контакт с gap-trouble@dcs.st-and.ac.uk.
    
       Сценарий конфигурации пропускает различные тесты для определения конфигурации
       вашей системы. Он вырабатывает файл bin/architecture/config.h, который
       содержит определения соответственно результатам тестов. Однако, может
       оказаться, что тесты на Вашей машине не дают ожидаемых результатов или
       требуются дополнительные тесты. В этом случае лучше всего отредактировать
       сценарий config.h, удалить все объектные файлы и вызвать  make из
       подкаталога  bin/architecture. Если Вы должны прибегнуть к изменению или
       дополнению этого файла, пожалуйста сообщите нам, что было нужно изменить,
       по адресу  gap-trouble@dcs.st-and.ac.uk. Если Вы были должны добавить
       другие определения, сообщите нам, какие свойства вашей системы они
       представляют.
    
       Если GAP компилирует, но спотыкается во время чтения библиотеки или
       сборки мусора на  ошибке в шине (bus error), возможно что сценарий
       конфигурации не понимает правильно допустимых выравниваний указателя.
       Это значение хранится в строке
    
       #define C_STACK_ALIGN      2
    
       файла  config.h. Увеличьте значение до следующей степени  2 (<= 8) и
       компилируйте GAP снова.
    
       Имеется еще файл  Makefile в каталоге  src, но он не используется больше
       в конфигурационном процессе. Как последнее средство, попробуйте им
       воспользоваться. И пожалуйста сообщите об этом в  gap-trouble.
    
    

    Документация

    В начало страницы
     
       Рукаводство к GAP размещено в различных ``книгах''. Стандартная поставка
       содержит четыре из них (вместе с полным индексом). Совместные пакеты и
       и другие расширения могут предоставлять свои руководства.
    
       Вся документация будет доступн автоматически в диалоговом  help (см. Help).
       Имеется также (если установлена) версия  HTML в подкаталоге doc/htm,
       которую можно просматривать браузером HTML. Заметим, что необходимо
       правильно установить  symbol font в Вашем web browser, чтобы получить
       правильное изображение математических формул (см. раздел "Установка HTML
       Font").
    
       Печать ?topic после приглашения  gap> обеспечит выдачу раздела руководства
       по сответствующей тематике (topic) (или списка подходящих разделов).
       Печать ??topic обеспечит список всех разделов, в заголовках которых
       фигурирует topic.
    
       Если только вы имеете не рудиментарную поставку, там содержатся файлы
       dvi и pdf с книгами руководств, имеющимися в стандартном комплекте
       поставки. Их можно найти в каталоге  gap4r2/doc в подкаталогах  tut
       (началльное знакомство), ref (сравочное руководство), prg (учебник
       программиста) и  ext (справочник програмиста).
    
       Если Вы еще не имеете вьюера для файлов pdf, можно взять, например,
       Adobe Acrobat
       http://www.adobe.com/products/acrobat/readstep.html (с copyright, но
       но свободная программа) или  XPDF http://www.foolabs.com/xpdf/xpdf.html
       (свободная программа для GPL).
    
       Для началного ознакомления мы предлагаем  читать сначала учебник по
       введению в GAP4.
    
       Если Вы знакомы с GAP3, все равно имеет смысл заглянуть в первые главы
       учебника. И во всяком случае следует прочесть последнюю главу учебника
       ``Миграция к GAP4''. Эта глава содержит обзор различий между GAP3 и GAP4,
       которые существенны для пользоввателя. Она также обясняет ``режим
       совмещения'', который можно включить, чтобы GAP4 вела себя подобно GAP3.
    
       Поскольку некоторые из руководств достаточно велики, вам не нужно
       немедленно распечатывать их. Если вы только приступаете к использованию
       GAP, полезно распечатать учебник (и вероятно первые главы справочника).
       Нет настоятельной необходимости печатать весь справочник. Мы также
       рекомендуем напечатать полный индекс к рукводству из
       gap4r2/doc/fullindex.dvi.
    
    

    Установка HTML Font

    В начало страницы
       Страницы HTML руководства используют символьный font для изображения
       не-латинских символов в математических формулах. Этот  font может быть не
       задействованным по умолчанию в Вашем браузере. Раздел о проблемах браузера
       в документации конвертора  tth
       http://hutchinson.belmont.ma.us/tth/manual.cgi
       описывает обычные неувязки и способы их разрешения.
    
       В частности, он предлагает следующий быстрый способ получения нужной
       установки для  Netscape 4 под X-Windows: добавить следующую строку
       к вашему файлу .Xdefaults (или .Xresources):
    
       Netscape*documentFonts.charset*adobe-fontspecific:   iso-8859-1
    
       и вызвать
    
       xrdb .Xdefaults
    
       (или перезапустить  X сервер), чтобы прочесть файл. Если netscape будет
       перезапущен, фонты будут работать правильно.
    
    

    Если дела обстоят плохо

    В начало страницы
       Этот раздел содержит описания нескольких часто встречающихся неувязок
       при установке или исполнении GAP и средства их устраненияю
    
       GAP начинает с сообщения ``hmm, I cannot find 'lib/init.g'''.
              Это значит, что или Вы запустили только двоичную программу или не
              отредактировали  script/batch файл оболочки для выбора правильного
              пути к библиотекиe. Вы должны запустить двоичную командой строкой
              с параметром -l path, где path есть путь к начальному каталогу GAP.
              См. раздел Параметры командной строки в справочнике.
       При старте GAP выдает сообщение об ошибке с неопределенными переменными.
              Может быть, Вы имеете файл  .gaprc, который был предназначен для
              GAP 3 и несовместим с GAP 4. См. раздел  .gaprc file в справочнике
              в главе "Исполнение GAP".
       GAP останавливается с выдачей сообщения : ``cannot extend the workspace any
              more'' ("не могу расширять дальше рабочее пространство").
              Ваша программа выходит за пределы доступной памяти. Повидимому, Вы
              потребовали от GAP сделать что-то, что требует памяти больше, чем
              имеется (например, перечислить все элементы _S_15). Можно
              использовать возможность -g командной строки (см. раздел "Параметры
              командной строки" в справочнике), чтобы определить, сколько памяти
              употребила GAP. Если это поле меньше, чем имеется в машине (это бывает
              иногда под  Windows), расширить его нельзя. Запустите  GAP снова с
              большей памятью или употребите параметр  -a для начального отведения
              большего объема рабочего пространства.
       GAP сообщает: ``corrupted completion file'' ("портится файл пополнения").
              Какой-то библиотечный файл получает изменения без  восстановления
              файлов пополнения. Часто это -- признак того, что
              ранее не были правильно установлены файлы исправления ошибок  или
              что Вы сами изменили библиотеку. В таком случае запустите  GAP из
              командной строки с параметром -N, смотрите раздел "Файлы пополнения".
        GAP останавливается с сообщением ``exceeded the permitted memory''.
              Ваше задание потребовало памяти больше количества, допустимого по
              умолчанию (128MB). (Это предохранительная мера против того, чтобы
              одно задание не нарушило работу других пользователей). Вы можете
              напечатать ответ: to continue. Если сообщение повторяется, лучше
              запустить задание снова, поставив с помощью параметра -o в
              командной строке более высокий предел.
        GAP сообщает, что не может найти файлы в  cnf или src, которые там
              на самом деле имеются.
              Даты новых файлов не были правильно извлечены (машины Alpha-OSF
              склонны к этому). Вызовите  touch * cnf/* src/*  из главного
              каталога GAP  (это должно переменить дату всех нужных файлов на
              ``теперь'') и попытайтесь снова.
       Перекомпиляция не компилирует измененных файлов.
              Даты новых файлов не были правильно извлечены. Войдите в исходный
              каталог и обработайте командой touch (команда UNIX для изменения
              даты) новые файлы.
       Перекомпиляция не проходит или не работают новые двоичные.
              Вызовите  make clean и запустите с начала процесс configure / make.
              (Возможно, что операционная система и/или компилятор прошли
              модернизацию (upgraded) и существующие объектные файлы использовать
              нельзя.
       Вычисления прекращаются с сообщением ``no method found''.
              GAP не может выполнить некоторую операцию с указанными аргументами.
              Кроме возможной ошибки в библиотеке, могут быть еще две причины.
              Во-первых, GAP на самом деле может не справиться с задачей: либо
              объект слишком сложен для имеющихся алгоритмов, либо такого алгорифма
              нет вообще. Во-вторых, GAP  может не знать, обладает ли указанный
              объект нужными свойствами (такими как,например, конечность), которые
              требуют доступные алгоритмы. См. разделы "Применимые методы" и
              "Известные свойства объектов".
    
      _Проблемы, характерные для  Windows_
    
       Файл  gap.bat не запускает GAP.
              Проверьте, что Вы используете  instwin.bat. Если Ваша версия Windows
              использует не английский язык, Вы должны  редактировать выходной
              файл file gap.bat в подкаталоге  bin, вследствие небрежности
              в организации  Windows.
       Windows жалуется на недостаток пространства окружения.
              Щелкните на  batch-файл instwin.bat или gap.bat, служащими причиной
              проблемы, правой кнопкой мыши, выберите Properties, Memory и
              увеличьте начальное пространство окружения до по крайней мере 1024.
              Это создаст ускоренный pif-файл, который нужно использовать для
              запуска GAP.
       Редактирование командных строок не работает под Windows.
              По умолчанию, клавишные команды  подобны командам UNIX.
              GAP также старается эмулировать под Windows некоторые специальные
              клавишные команды. Однако, если установленное повторение клавиш
              слишком велико, Windows теряет части кодов этих клавиш и GAP не может
              их опознать. Windows98 производит те же самые коды для курсорных
              клавиш. Так как  GAP не взаимодействует непосредственно с механизмом
              Windous, нет путей для обхода этой проблемы.
       Не работает клавиша ^.
              Проблема возникает при использовании драйвера клавиатуры для
              не-английского языка. Такие драйверы ловят символ ^ для французских
              аксантов  и сирконфлексов и не передают его к GAP.
       Не работают Cut и Paste.
              См. http://www-gap.dcs.st-and.ac.uk/~gap/Info4/windows.html для
              справки о средстве.
    
       _Если перечисленные средства не помогают_ или Вы обнаружили дефект,
       пожалуйста сообщите в  gap-trouble@dcs.st-and.ac.uk. Укажите текст,
       который привел к проблеме, и укажите тип машины, операционную систему и
       версию  GAP (например, ``gap4r2, fix1'').
    
    Этот файл получен из TeX-руководства исключением некоторых TeX-Macro-Calls.
    
    

    Установка XGAP

    В начало страницы
    Установка  XGAP не составит труда, если Вы уже установили саму  GAP.
    Мы предполааем здесь, что вы хотите установить XGAP в ее стандартном месте,
    т.е. в подкаталоге "pkg" главной установки GAP4.
    
    
    \Раздел {Обзор}
    
    Вы должны выполнить следующие шаги для установки XGAP:
    
    -- Получить источники
    -- Распаковать источники утилитой 
    -- Воспользоваться сценарием  чтобы приспособить  все специально
       для Вашей системы
    -- Скомпилировать часть Cи в XGAP
    -- Отредактировать некоторый стартовый сценарий и установить его в выполнимом
       каталоге Вашей системы
    
    \Раздел {Что необходимо для установки XGAP}
    
    Являясь графическим интерфейсом для GAP, XGAP нуждается в графике. В настоящее
    время это значит, что Вам необходима система  X window версии 11, выпуск
    5 или более новый. Поэтомы Вы не можете использовать  XGAP на компьютерах
    Macintosh или  Microsoft Windows. С другой стороны, тип используемой  Unix
    не имеет значения. Свяжитесь с  Max Neunhoeffer
    (email:`max.neunhoeffer@math.rwth-aachen.de') или с gap-trouble , если возникли
    проблемы с конфигурацией системы.
    
    Поскольку  XGAP содержит часть Cи, необходимо иметь Си-компилятор
    
    
    \Раздел {Получение и распаковка источников}
    
    Источники можно загрузить из тех же мест, что и GAP. Главные FTP-серверы:
    
    ftp://ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/
    ftp://ftp.math.rwth-aachen.de/pub/gap4/
    ftp://ftp.ccs.neu.edu/pub/mirrors/ftp-gap.dcs.st-and.ac.uk/pub/gap/gap4/
    ftp://pell.anu.edu.au/pub/algebra/gap4/
    
    
    Вам необходим только один файл, его имя "xgap4r00.zoo"и он находится в
    подкаталоге для совместных пакетов. При установке GAP Вы использовали
    утилиту  для распаковки поставки. Она нужна и теперь. См.
    руководство по GAP, как ее получить и скомпилировать.
    Перейдите в подкаталог `pkg', где Вы установили GAP (вы печатали  команду
    ,и новый каталог с именем "gap4" или или чем-подобным был создан,
    этот каталог содержит подкаталог `pkg'). Стандартное место должно быть:
    
    # cd /usr/local/lib/gap4/pkg
    (не печатайте символ приглашения #)
    
    Теперь извлеките источники для совместного пакета  XGAP:
    
    # unzoo -x xgap4.zoo
    xgap/README     -- extracted as text
    xgap/Makefile.in        -- extracted as text
    xgap/configure  -- extracted as text
    xgap/configure.in       -- extracted as text
    xgap/init.g     -- extracted as text
    xgap/cnf/Makefile       -- extracted as text
    xgap/cnf/Makegap.in     -- extracted as text
    xgap/cnf/Makegap.top    -- extracted as text
    xgap/cnf/config.hin     -- extracted as text
    xgap/cnf/configure.in   -- extracted as text
    xgap/cnf/configure.out  -- extracted as text
    xgap/doc/answers.tex    -- extracted as text
    xgap/doc/diffgap3.tex   -- extracted as text
    /bin/mkdir: cannot make directory `xgap': File exists
    ...
    
    Не обращайте внимания на диагностику.
    
    Утилита  распаковывает файлы и помещает их в соответствующие
    подкаталоги. XGAP располагается целиком в следующем подкаталоге
    (подразумевается стандартное размещение):
    
    /usr/local/lib/gap4/pkg/xgap
    
    
    \Раздел {Конфигурирование и компиляция части Cи}
    
    Следует заменить Ваш рабочий каталог на подкталог "xgap". Для этого нужно
    
    # cd xgap
    
    если Ваш текущий рабочий каталог есть тот, где Вы использовали .
    Там Вы и запустите сценарий  посредством:
    
    # ./configure
    creating cache ./config.cache
    checking for make... make
    checking host system type... i686-unknown-linux2.0.34
    checking target system type... i686-unknown-linux2.0.34
    checking build system type... i686-unknown-linux2.0.34
    checking for gcc... gcc
    checking whether the C compiler (gcc  ) works... yes
    checking whether the C compiler (gcc  ) is a cross-compiler... no
    checking whether we are using GNU C... yes
    ...
    updating cache ./config.cache
    creating ./config.status
    creating Makefile
    creating xgap.sh
    
    "..." означают опущенные тексты.
    Этот сценарий старается определить, какого рода операционная система и
    библиотеки у Вас установлены, и соответственно этому конфигурирует источник.
    Нормально выдаваемый результат не содержит сообщений об ошибках. Последний
    шаг сценария выдает некоторые make файлы, предназначенные для компиляции кода.
    Вы сделаете это, напечатав
    
    # make
    if test ! -d bin;  then mkdir bin;  fi
    if test ! -d bin/i686-unknown-linux2.0.34-gcc; \ # line broken for this manual!
                    then mkdir bin/i686-unknown-linux2.0.34-gcc;  fi
    cp cnf/configure.out bin/i686-unknown-linux2.0.34-gcc/configure
    ( cd bin/i686-unknown-linux2.0.34-gcc ; CC=gcc \ # line broken for this manual!
                    ./configure --target=i686-unknown-linux2.0.34  )
    creating cache ./config.cache
    checking for gcc... gcc
    checking whether the C compiler (gcc  ) works... yes
    checking whether the C compiler (gcc  ) is a cross-compiler... no
    checking whether we are using GNU C... yes
    ...
    creating ./config.status
    creating Makefile
    creating config.h
    make[1]: Entering directory \                   # line broken for this manual!
         `/usr/local/lib/gap4/pkg/xgap/bin/i686-unknown-linux2.0.34-gcc'
    gcc -I. -g -O2 -I/usr/X11R6/include  -o xcmds.o -c ../../src.x11/xcmds.c
    gcc -I. -g -O2 -I/usr/X11R6/include  -o utils.o -c ../../src.x11/utils.c
    ...
    make[1]: Leaving directory \                    # line broken for this manual!
         `/usr/local/lib/gap4/pkg/xgap/bin/i686-unknown-linux2.0.34-gcc'
    
    (некоторые строчки перенесены при печати данного руководства, места переноса
    отмечены знаками  backslash (т.е. \ ))
    
    Теперь все Cи-источники скомпилированы и двоичный исполнимый файл построен.
    Он помещен в подкаталог "bin" в вашем каталоге "xgap". Его имя связано с Вашей
    установкой. Оно может быть,например, таким
    
    bin/i686-unknown-linux2.0.34-gcc/xgap
    
    если Вы компилируете на системе  Linux, используя компилятор  GNU-C.
    
    
    \Раздел {Установка стартового сценария}
    
    Для того чтобы сделать запуск XGAP более удобным, имеется стартовый
    сценарий, содержащий также некоторую конфигурационную информацию, такую как
    позиция Вашей установки GAP. Это каталог "bin" в пределах дерева "xgap",
    с именем "xgap.sh". Такой файл автоматически генерируется сценарием
    `configure' и нормально Вы не дожны ничего в нем не изменять. Только скопируйте
    его куда-нибудь, где пользователи имеют в своих "PATH" переменные обстановки,
    например, в "/usr/local/bin". Это завершит инсталляцию.
    
    Если Вы хотите изменить что-нибудь в инсталляции, вы можете редактировать
    сценарий, но не переходите за строчку
    
    ##  STOP EDITING HERE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    Вы можете назвать каталог, где установлен GAP, как  "GAP_DIR", количество
    памяти, доступное GAP в качестве начального рабочего пространства
    ("GAP_MEM"), имя выполнимой GAP ("GAP_PRG") и имя выполнимой  XGAP
    ("XGAP_PRG"). Первые три есть точно те же, которые можно отредактировать в
     главном стартовом сценарии  GAP.
    После этого Вы получаете возможность управлять поведением стартового
    сценария XGAP. Вы можете указать, уходить ли XGAP goes на задний план,
    ("DAEMON") и печатать ли информацию о ее параметрах ("VERBOSE"). Заметим,
    что можно комбинировать "DAEMON=YES" и  "VERBOSE=YES", так как сценарий
    фактически исполняется на переднем плане и только Си-программа поступает
    на задний.
    
    
    \Section {Установка в отличное от стандартного место}
    
    Может случиться, что Вы не хотите устанавливать XGAP в ее стандартное место,
    возможно, потому что не хотите беспокоить своего системного администратора
    или не имеете доступа к каталогу GAP. В таком случае можно распаковать XGAP
    в любое другое место в пределах каталога "pkg" командой  , как это
    описано выше. Давайте вызовем на минутку этот каталог "pkg". Вы получите
    некоторый подкаталог  "xgap" со всеми файлами XGAP в нем. Проделайте
    стандартную проседуру с двумя исключениями:
    
    Перед конфигурацией и компиляцией XGAP Вам нужна символическая связь "cnf",
    которая находится в  каталоге с "pkg" и указывает на каталог "cnf" в главном
    кталоге GAP. Эту связь можно установить непосредственно после распаковки
    (помните: Вы находитесь в каталоге "pkg"!) командой:
    
    ln -s /usr/local/lib/gap4/cnf ..
    
    если "/usr/local/lib/gap4" есть место главной установки GAP.
    
    Вы можете определить, где находится находится главная установка GAP4, запустив
    обычным образом GAP и посмотрев на переменную `GAP_ROOT_PATHS' внутри GAP.
    
    Заметим, что Вы должны отредактировать стартовый сценарий "xgap.sh" (см.
    предыдущий раздел), присоединив пути к "XGAP_DIR", "GAP_DIR", и возможно
    к имени исполнимой  GAP  "GAP_PRG".  Запишите Ваш установочный каталог
    GAP в переменную "GAP_DIR" и имя каталога, содержащего "pkg", в переменную
    "XGAP_DIR". Переменная "GAP_PRG" должна содержать путь к исполнимой GAP
    по отношению к подкаталогу "bin" главной установки GAP. В большинстве случаев
    это значение там уже есть. Заметим однако, что если GAP и XGAP скомпилированы
    на разных машинах, возможно что имена этих каталогов различны в исполнимых
    GAP и XGAP.
    
    Сценарий автоматически запустит  GAP с двумя каталогами в качестве путей к
    библиотеке, так что все библиотеки GAP и XGAP будут найдены.