Установка Geant4
Для установки Geant4 нам понадобится Linux и Cmake. В данном примере установка проходила на Ubuntu 16.04 и cmake 3.5.1.
Описанный способ установки подходит для версии Geant4 начиная с 9.6, только необходимо проследить, какая версия cmake потребуется для установки Джанта.
Где скачать исходники
Официальный сайт Geant4 сейчас находится по адресу http://geant4.web.cern.ch и на нем можно скачать последнюю версию Geant4. Установочные файлы предоставляются в виде исходных кодов в разделе «Source files» в виде архива tar или zip.
Можно еще устанавливать из предварительно скомпилированных исходников, это раздел «Pre-compiled Libraries», но советую устанавливать именно из исходников, так как тогда финальная собранная программа будет работать быстрее.
Итак, скачиваем исходник, файл geant4.10.03.p03.tar.gz
Куда установить Geant4
Далее, для удобства выделяем специальную папку в домашней директории, где будет установлен Geant4 и будут находится все файлы его касающиеся.
/home/black/geant4/install_path
Назвать директорию можно как угодно, но лучше избегать пробелов и если у вас локаль в системе не UTF8, тогда путь должен быть весь только английскими буквами и цифрами, иначе могут начаться проблемы из-за отличия в кодировках.
Разархивируем архив, по умолчанию он распаковывается в папку geant4.10.03.p03
, полный адрес к ней теперь
/home/black/geant4/install_path/geant4.10.03.p03
Что бы установить Geant4 создадим еще две директории
geant4.10.03-build
geant4.10.03-install
Как понятно из названия, папка с build предназначена для компиляции, а с install для установки.
Настраиваем установку Geant4
Открываем консоль и заходим в папку geant4.10.03-build
cd /home/black/geant4/install_path/geant4.10.03-build
Для начала необходимо запустить cmake и с полноценными параметрами запуска команда будет выглядеть так:
cmake -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p03-install ../geant4.10.03.p03 -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_BUILD_MULTITHREADED=ON
где -DCMAKE_INSTALL_PREFIX
— путь, куда устанавливать, ../geant4.10.03.p03
— папка, где лежат исходники, она находится на директорию выше, иначе лучше указать полный путь, -DGEANT4_INSTALL_DATA
— включать ли загрузку данных при установке, по умолчанию выключено, но предлагаю включить, пусть все скачает, что бы потом не возникали проблемы что не хватает данных, скачает примерно 500 Мбайт, -DGEANT4_USE_QT
— включить использование QT, и -DGEANT4_USE_OPENGL_X11
— возможность отрисовать с помощью OpenGL в окошке, если не работает QT. -DGEANT4_BUILD_MULTITHREADED
— опция многопоточности, в версии 4.11 опция включена по умолчанию. Компиляция по умолчанию настроена на выпуск, в Release
, т.е. в Geant4 отладки нет, для настройки отладки Debug
смотрите здесь.
В принципе можно запустить только
cmake -DCMAKE_INSTALL_PREFIX=../geant4.10.03.p03-install ../geant4.10.03.p03
этого достаточно для установки Geant4.
Вывод получился такой:
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.1.0")
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found version "4.8.7")
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib/x86_64-linux-gnu/libX11.so
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of off64_t
-- Check size of off64_t - done
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Configuring download of missing dataset G4NDL (4.5)
-- Configuring download of missing dataset G4EMLOW (6.50)
-- Configuring download of missing dataset PhotonEvaporation (4.3.2)
-- Configuring download of missing dataset RadioactiveDecay (5.1.1)
-- Configuring download of missing dataset G4NEUTRONXS (1.4)
-- Configuring download of missing dataset G4PII (1.3)
-- Configuring download of missing dataset RealSurface (1.0)
-- Configuring download of missing dataset G4SAIDDATA (1.1)
-- Configuring download of missing dataset G4ABLA (3.0)
-- Configuring download of missing dataset G4ENSDFSTATE (2.1)
-- The following Geant4 features are enabled:
GEANT4_BUILD_CXXSTD: Compiling against C++ Standard '11'
GEANT4_USE_SYSTEM_EXPAT: Using system EXPAT library
GEANT4_USE_QT: Build Geant4 with Qt support
GEANT4_USE_OPENGL_X11: Build Geant4 OpenGL driver with X11 support
-- Configuring done
-- Generating done
-- Build files have been written to: /home/black/geant4/install_path/geant4.10.03.p03-build
Самое важное, или есть в конце эти строчки
-- Configuring done
-- Generating done
-- Build files have been written to:
они говорят об успешной отработке cmake и если они есть, то можно далее приступать к компиляции. Если есть ошибки, смотрите следующий раздел.
Если возникли ошибки при установке Geant4
Однако на свежей установке Ubuntu может выдать ошибки, когда не хватает некоторых пакетов, вот примеры
Первая ошибка
Не найден пакет EXPAT
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find EXPAT (missing: EXPAT_LIBRARY EXPAT_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindEXPAT.cmake:56 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
cmake/Modules/Geant4OptionalComponents.cmake:102 (find_package)
CMakeLists.txt:75 (include)
Решение поставить пакет expat через synaptic или командой
sudo apt-get install expat
Иногда это не работает, тогда попробуем команду:
sudo apt-get install libexpat1-dev
Вторая ошибка
Не хватает файлов QT
qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
CMake Error at /usr/share/cmake-3.5/Modules/FindQt4.cmake:1326 (message):
Found unsuitable Qt version "" from NOTFOUND, this code requires Qt 4.x
Call Stack (most recent call first):
cmake/Modules/Geant4InterfaceOptions.cmake:117 (find_package)
CMakeLists.txt:80 (include)
Решение установить QT4
sudo apt-get install qt4-qmake
или
sudo apt-get install qt4-default
Так же следует смотреть внимательно, в более новых версиях вероятно требуется версия QT5.
Третья ошибка
Не хватает файлов исходных файлов или пакета разработки для QT
CMake Warning at /usr/share/cmake-3.5/Modules/FindQt4.cmake:626 (message):
/usr/bin/qmake reported QT_INSTALL_LIBS as "/usr/lib/x86_64-linux-gnu" but
QtCore could not be found there. Qt is NOT installed correctly for the
target build environment.
Call Stack (most recent call first):
cmake/Modules/Geant4InterfaceOptions.cmake:117 (find_package)
CMakeLists.txt:80 (include)
Решение
sudo apt-get install libqt4-dev
Так же следует смотреть внимательно, в более новых версиях вероятно требуется версия QT5.
Четвертая ошибка
Не хватает файлов разработки для X11
CMake Error at cmake/Modules/Geant4InterfaceOptions.cmake:225 (message):
could not find X11 Xmu library and/or headers
Call Stack (most recent call first):
CMakeLists.txt:80 (include)
Решение
sudo apt-get install libx11-dev
На чистой установке Ubuntu 18.04 LTS потребовалось установить немного больше, команда:
sudo apt-get install libx11-dev libxmu-dev
При чистой установке Ubuntu больше ошибок не возникает, проверено на Ubuntu 18.04 LTS в июне 2018 года.
Установка Geant4.11
Установка Geant4.11 не отличается от установки Geant4.10, принцип тот же. Качаем архив с исходниками и распаковываем в директорию geant4-v11.0.3
.
Создаем директории geant4-v11.0.3-install
,
geant4-v11.0.3-build
и заходим в последнюю:
cd geant4-v11.0.3-build
И запускаем
cmake -DCMAKE_INSTALL_PREFIX=../geant4-v11.0.3-install ../geant4-v11.0.3 -DGEANT4_INSTALL_DATA=ON -DCMAKE_BUILD_TYPE=Debug -DGEANT4_USE_QT=ON
Дальше смотрите в следующем разделе.
Компиляция и установка Geant4
Далее после успешного выполнения cmake компилируем все командой
make
Что бы процесс проходил быстрее компиляцию можно проводить не нескольких ядрах процессора, у меня 4 потока, поэтому компилирую командой
make -j4
После компиляции выполняем установку
make install
Поздравляю, Geant4 установлен!
Полное руководство на английском можно найти по ссылке http://geant4-userdoc.web.cern.ch/geant4-userdoc/UsersGuides/InstallationGuide/html/installguide.html
Для того что бы использовать именно эту установку Geant4, установите пути в консоли в которой будете собирать и выполнять проект на Geant4 командой:
source /home/black/geant4/install_path/geant4.10.03-install/bin/geant4.sh
Более кратко, нужно указать путь к файлу geant4.sh
в директории установки
source path-to-geant4-install/bin/geant4.sh
Про запуск примера можно почитать здесь.
Удачи!