Build Geant4 on Ubuntu
- Install GUI package manager
synaptic
sudo apt-get update
sudo apt-get install synaptic
- Open
synaptic
, search for the following packages and install them if not already installed.
git
dpkg-dev
cmake
g++
gcc
binutils
libx11-dev
libxpm-dev
libxft-dev
libxext-dev
libxmu-dev
libpng
libjpeg
python
gfortran
libssl-dev
libpcre3-dev
libglew-dev
libftgl-dev
libmysqlclient-dev
libfftw3-dev
libcfitsio-dev
graphviz-dev
libavahi-compat-libdnssd-dev
libldap2-dev
python-dev
libxml2-dev
libkrb5-dev
libgsl-dev
libqt4-dev
libxerces-c-dev
libmotif-dev
libglw1-mesa-dev
opticalraytracer
- fetch the newest tar package from CERN and build.
# make a directory to store files
cd <where-you-want-to-keep-geant4> e.g. /softwares or /home/tom/apps ...
mkdir geant4
cd geant4
# download and extract geant4 source code
wget http://geant4.web.cern.ch/geant4/support/source/geant4.10.03.p03.tar.gz
tar zxvf geant4.10.03.p03.tar.gz
# prepare for installation
mkdir geant4.10.03-install # built binary files will be move to this directory
cd geant4.10.03.p03
mkdir build
# save cmake command with options into a file
# CHANGE <where-you-want-to-keep-geant4> to your directory
echo cmake -DCMAKE_INSTALL_PREFIX=<where-you-want-to-keep-geant4>/geant4/geant4.10.03-install -DCMAKE_BUILD_TYPE=RelWithDebInfo -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON <where-you-want-to-keep-geant4>/geant4/geant4.10.03.p03 > cmakeCommand.txt
# execute cmake command and save log output into a file
cd build
`cat ../cmakeCommand.txt` >& cmake.log
# read cmake.log using your favourite reader/editor.
# **check everything looks okay (NO ERROR)**
# most ERRORs are related to missing packages / development files
# use `synaptic` to install them
less cmake.log
# build geant4, may take more than half an hour.
make -j2
make install
- add geant4 configure script to your start-up script (
~/.bashrc
)
# append these two lines into ~/.bashrc
source <where-you-want-to-keep-geant4>/geant4/geant4.10.03-install/bin/geant4.sh
source <where-you-want-to-keep-geant4>/geant4/geant4.10.03-install/share/Geant4-10.3.3/geant4make/geant4make.sh
- verify installation with built-in example
cd <where-you-want-to-keep-geant4>/geant4/geant4.10.03-install/share/Geant4-10.3.3/examples/basic/B1
mkdir build && cd build
cmake ..
make
# check the output of make and run the program
./exampleB1
You should see a window like this:
Use Docker Image
1. Install docker
2. Test docker installation
docker run hello-world
3. Pull GEANT4 Image from DockerHub
docker pull nmtzwh/scistack
If you are interested, this repository contains all the dockerfiles
for this image.
4. Run Image as a Container
# use the bash entry point to test
docker run -it --rm nmtzwh/scistack
# run with local directory mounted
docker run -it --rm -v <full-path-to-input>:/input nmtzwh/scistack
You can build and run GEANT4 code inside this container. NOTE: modifications inside container will be deleted after you exit
, thus you should mount your local directory and then edit your files in local directory.