SetupLinux


Revision as of 11:08, 20 Sep 2005

Содержание

Как установить GEANT4

© Hatta, 2004, City Of Moscow

0. Префейс

Этот текст описывает последовательность шагов, которых лично мне хватило, чтобы получить полнофункциональную инсталляцию вышеобозначенного предмета статьи. Указанную операцию я проводил несколько раз на разных полатформах, не всегда все работало сразу, однажды пришлось основательно повозиться, но такого, чтобы G4 не заработал не бывало. Отсюда следует мораль: если geant не устанавливается, надо еще раз начать все с самого начала — это мною испытанный путь, он обязательно приводит к желаемому результату.

Необходимость в такого рода документе, на мой взгляд, существует. Официальная документация по сабжу довольно скупа в том, что касается установки, а неофициальной практически не существует, по крайней мере я не нашел. О русскоязычных документах я вообще молчу. А тем не менее процесс установки g4 вещь совершенно нетривиальная, т.е. не подходящая под общепринятые стандарты: так, например спроецировать иерархию папок geant на обычные юниксовые bin, lib, и так далее у меня так и не получилось — программы отказывались компилироваться. Хотя, надо сказать, джантовский вариант расположения файлов сам по себе очень удобен.

1. Системные требования

GEANT4 является пакетом библиотек C++ для моделирования прохождения частиц через вещество. Так гласит http://wwwasd.web.cern.ch/wwwasd/geant4/geant4.html проекта в интернете, которую нужно посетить первым делом.

Там также утверждается, что для его работы требуется POSIX-совместимая операционная система. Такая как

  • Solaris
  • linux
  • или Windows NT4/2000/XP/2003+Cygwin32.

Про Solaris ничего конкретного сказать не могу, уж слишком для России это экзотическая вещь, про Windows знаю лишь то, что мои знакомые успешно использовали GEANT из исходников под Windows, а вот в Linux´е я сам, довольно-таки беспроблемно его использую. Под следующими версиями:

  • Fedora Core 3 — ядро 2.6.9, gcc 3.4.2, CLHEP 1.9.1.2, GEANT4.7.0
  • Fedora Core 2 — без патчей, ядро 2.6.8.1, gcc 3.3.3, CLHEP 1.8.0.2, GEANT4.6.0p01
  • SuSE Linux 9.0 — ядро 2.4.21, gcc 3.3.1, CLHEP 1.8.2.0, GEANT4.6.2p01

Поскольку я знаком только с линуксом, процесс установки буду описывать именно на этой платформе, ищущих же трудных путей и желающих настроить себе все это дело под Windows отправляю на http://wwwasd.web.cern.ch/wwwasd/geant4/G4UsersDocuments/UsersGuides/InstallationGuide/html/PCMachines/pcMachines.htmlпо установке в этой замечательной системе.

Ничего кокретного не могу сказать и про Free/Net/OpenBSD. Вроде бы эти системы вполне соответствуют POSIX, и мне кажется, что особых проблем установка в них создать не должна, во всяком случае портировать geant на BSD должно быть нетрудно…

2. Подготовка к установке

Для сборки нам потребуется GNU Make (у меня версия 3.80, насколько мне известно она последняя вот уже года три), и компилятор gcc с поддержкой C++. Узнать версии установленных программ можно так:

$ make --version
$ g++ --version

Мое личное мнение — это: все должны пользоваться последней доступной на данный момент версией GCC. Но в данном случае спешу предостеречь от попыток собрать geant с помощью ветки gcc-3.4, последней на момент написания сего текста (Обновление от 15.01.2005. Недавно вышедший GEANT4.7.0 отлично собирается под gcc 3.4). Множество изменений в архитектуре компилятора, несомненно в лучшую сторону, не дадут откомпилировать geant. Таким образом, лучше всего воспользоваться gcc-3.3.x, который является системным компилятором на всех линуксах, выпущенных в 2003-2004 годах. Хотя 3.2.x и 3.1.x тоже должны работать. Как и gcc-2.95.3, но не 2.96, установленный на Redhat Linux 7.3.

Далее, geant4 использует библиотечку CLHEP, скачать которую можно по http://wwwasd.web.cern.ch/wwwasd/lhc++/clhep/DISTRIBUTION/clhep.html. На данный момент последняя версия — 1.8.2.0, скачивать надо файл исходных текстов clhep-1.8.2.0.tgz. CLHEP использует нормальную схему компиляции autoconf/automake и собирается так:

$ tar xzf clhep-1.8.2.0.tgz
$ cd CLHEP

предположим, мы устанавливаем его в $HOME/programs/CLHEP, тогда configure вызывается так:

$ ./configure --prefix=$HOME/programs/CLHEP
$ make 
$ su, если вы устанавливаете не в домашнюю папку, и
# make install

3. Установка

Вроде бы все должно пройти без ошибок и дальше можно компилировать geant. Берем последнюю http://wwwasd.web.cern.ch/wwwasd/geant4/source/source.html, это должен быть файл вида geant4.6.2.p01.gtar.gz. Кроме того, там можно скачать файлы данных для некоторых процессов. Например процессы семейства G4LowEnergy требуют наличия соответствующих файлов из архива G4EMLOW23.tar.gz. Дальше мы распаковываем скаченные исходники туда, куда хотим проинсталлировать GEANT, например $HOME/programs/GEANT4.

Для сборки и работы geant использует кучу переменных окружения, которые лучше всего определить в ~/.bashrc. Итак,

  • CLHEP_BASE_DIR - директория куда установлена CLHEP, например $HOME/programs/CLHEP
  • G4SYSTEM - строка с описанием нашей платформы. Возможные значения - имена файлов в директории config/sys исходников GEANT
  • G4INSTALL - папка, куда мы его устанавливаем

Это обязательные переменные, без них просто ничего не заработает. Но кроме того есть еще огромное количество разных настроек, большая часть которых описана http://wwwasd.web.cern.ch/wwwasd/geant4/G4UsersDocuments/UsersGuides/ForApplicationDeveloper/html/Appendix/makeFile.html.

Вот как описаны переменные окружения у меня:

export G4INSTALL=/usr/local/GEANT4
export G4SYSTEM=Linux-g++
export CLHEP_BASE_DIR=/usr/local/CLHEP
export G4WORKDIR=$G4INSTALL              # G4 можно установить
					 # куда-нибудь system-wide
					 # а потом каждый пользователь
					 # может установить себе G4WORKDIR
					 # где-нибудь в домашней папке.     

export G4VIS_BUILD_OPENGLX_DRIVER=1      # Компилировать и
export G4VIS_USE_OPENGLX=1		 # использовать OpenGl для визуализации

export G4LIB_BUILD_SHARED=YES		 # Собирать GEANT в виде
					 # динамических библиотек
					 # вместо статических. Иначе
					 # размер бинарника
					 # скомпонованного с ним
					 # вырастет до 4-5 Мб. При
					 # этом надо не забыть
					 # добавить путь
					 # $G4INSTALL/lib/$G4SYSTEM в
					 # /etc/ld.so.conf, чтобы
					 # динамический загрузчик нашел
					 # библиотеки.
					 
export G4UI_USE_TCSH=YES		 # Компилировать поддержку
					 # readline. Это дает историю
					 # коммандной строчке.   

После этого, не забыв заново войти в систему или запустить новый xterm, чтобы был прочитан .bashrc, можно начать компиляцию:

$ cd $G4INSTALL/source
$ make

Этот процесс запросто может занять несколько часов даже на быстрых компьютерах. Когда все кончится, проверить работоспособность можно на примерах, поставляемых с G4:

$ cd $G4INSTALL/examples/novice/N01
$ make
$ $G4WORKDIR/bin/$G4SYSTEM/exampleN01, 

Кажется, все. Не забудьте запустить ldconfig, если вы решили использовать динамические библиотеки.

Если собрав geant, однажды вам захочется изменить конфигурацию, скажем, добавить визуализацию посредством OpenGL+Motif, то для этого необязательно пересобирать все снова — достаточно только сделать

$ cd $G4INSTALL/source/visualization && make
$ cd ../interfaces && make
$ cd .. && make libmap
Edit page