Environment modules, installation scripts, container images, and CVMFS distribution for Geant4 — with seamless coexistence of multiple Geant4 versions.
This repository provides:
- Environment Modules + installation scripts for Geant4
- Multi-architecture Docker images vi CI(
amd64,arm64)
g4install is designed to let you:
- Install multiple Geant4 versions side-by-side
- Switch between versions quickly using
module load/module switch - Automatically install and load required dependencies (CLHEP, Xerces-C)
- Easy, consistent, shell independent environment
This is especially useful:
- one reliable command to install the latest or past Geant4 versions and its dependencies
- validating applications against different Geant4 releases (e.g.
11.3.xvs11.4.x)
Install Environment Modules:
- Linux: install
environment-modulesusing your package manager - macOS:
brew install modules
Here we use /path/to/g4install as an example.
git clone https://github.com/gemc/g4install
module use /path/to/g4installWe recommend adding the module use command to your
shell init script, like .bashrc or .cshrc.
You can now list supported Geant4 versions:
module avail geant4module load sim_system
install_geant4 11.4.1module load geant4/11.4.1To verify an active version
geant4-config --version
which geant4-configOne of the main features of g4install is the ability to keep multiple versions installed and switch between them without conflicts.
module load geant4/11.3.2
# build/test project A
module switch geant4/11.4.1
# build/test project BImages are built by CI and published to the G4Install GitHub Container Registry.
- Multi-arch tags (same tag works on Intel and Apple Silicon)
- Batch mode and GUI mode (VNC / noVNC)
- Includes Geant4 and ROOT
docker run --rm -it ghcr.io/gemc/g4install:11.4.0-ubuntu-24.04 bash -liVPORTS=(-p 6080:6080 -p 5900:5900)
VNC_PASS=(-e X11VNC_PASSWORD=change-me)
VNC_BIND=(-e VNC_BIND=0.0.0.0)
GEO_FLAGS=(-e GEOMETRY=1920x1200)
docker run --rm -it $VPORTS $VNC_BIND $VNC_PASS $GEO_FLAGS ghcr.io/gemc/g4install:11.4.0-ubuntu-24.04| OS | Pull Command | arm64 | amd64 |
|---|---|---|---|
| ubuntu 24.04 | docker pull ghcr.io/gemc/g4install:11.4.1-ubuntu24 |
yes | yes |
| fedora 42 | docker pull ghcr.io/gemc/g4install:11.4.1-fedora42 |
yes | yes |
| almalinux 9.4 | docker pull ghcr.io/gemc/g4install:11.4.1-almalinux9.4 |
yes | yes |
| debian 13 | docker pull ghcr.io/gemc/g4install:11.4.1-debian-13 |
yes | yes |
| archlinux latest | docker pull ghcr.io/gemc/g4install:11.4.1-archlinux-latest |
no | yes |
To list all suported version check the github registry for g4install
Environment Modules is not installed or not initialized in the current shell.
- Install
environment-modules(Linux) ormodules(macOS/Homebrew) - Start a login shell or source your shell initialization files
Confirm the repository is added to the module search path:
module use /path/to/g4installCheck current shell state:
module list
which geant4-config
geant4-config --versionIf needed:
module purge
module use /path/to/g4install
module load geant4/<desired-version>