轻松的安装 Geant4

本文主要是给组里面的同学们快速配置自己的 Geant 4 之用
本文使用 Fedora 操作系统(或者是其 WSL remix)
如果你是高贵的 Arch 用户,AUR 里面貌似有现成的 Geant 4, 也是开箱即用的,但是 Arch 用户大概不需要这篇文章

在 WSL 中配置你的 Fedora 环境

对于原生 Linux 用户,请忽略这一节。

启用 WSL 与安装 Linux

请参阅这篇文章的“为 WSL 做准备”章节,启用你的 Windows 下的 WSL。然后在Fedora Remix for WSL 发表页面下载那个appxbundle文件,双击安装这个软件包,然后打开安装的程序,按照提示进行设置用户名以及密码。

安装 XServer

为了能正确使用 ROOT/Geant4 的图形界面,你需要安装 XServer。在这里下载,安装后启动,全部选择默认配置即可。

然后在 WSL 中运行

代码 1~/.bashrc 中设置 WSL 的 XServer 地址
echo 'export DISPLAY=127.0.0.1:0' >> ~/.bashrc

伪装 release 信息

运行

代码 2在 WSL 中安装 Fedora release 信息
sudo dnf install fedora-release --allowerasing 

WSL 配置至此结束,接下来是安装 Geant 4 以及 ROOT。

安装 Geant 4

运行

代码 3从 Copr 安装 Geant 4
sudo dnf copr enable yanqiyu/geant4
sudo dnf install geant4 geant4-data geant4-devel geant4-examples

就完成了安装。

编译安装

我不怎么建议自己编译安装,因为编译慢,安装的位置不好还需要手动设置一下环境变量

下载 Geant 4 的源代码,然后解压

代码 4从源代码编译并安装 Geant 4
mkdir build && cd build
cmake    -DGEANT4_BUILD_MULTITHREADED=ON \
         -DGEANT4_INSTALL_DATA=ON \
         -DGEANT4_USE_GDML=ON \
         -DGEANT4_USE_G3TOG4=ON \
         -DGEANT4_USE_QT=ON \
         -DOpenGL_GL_PREFERENCE=GLVND \
         -DGEANT4_USE_XM=ON \
         -DGEANT4_USE_OPENGL_X11=ON \
         -DGEANT4_USE_INVENTOR=OFF \
         -DGEANT4_USE_RAYTRACER_X11=ON \
         -DGEANT4_USE_SYSTEM_CLHEP=OFF \
         -DGEANT4_USE_SYSTEM_EXPAT=ON \
         -DGEANT4_USE_SYSTEM_ZLIB=ON \
         ..
make -jN(N 替换为你的 CPU 线程数)
make install

要是提示缺依赖就照着提示找依赖安装。

自己编译安装的版本需要运行:

代码 5加载自行编译的 Geant 4 环境
source /path/to/geant4.sh

来设置环境变量,通过源安装的不需要。

安装 ROOT

在多数情况下,可以通过安装

代码 6安装支持大多数 Geant 4 开发需求的 ROOT 软件包
sudo dnf install root-hist-painter root-physics root-mathmore root-tree-dataframe root-hist root-spectrum root-net root-tree-ntuple root-graf-x11 root-graf3d root-vecops root-matrix root root-multiproc root-icons root-tree root-graf-postscript root-gui root-graf-gpad root-tree-player root-cling root-minuit root-fonts root-graf-asimage root-graf root-core root-mathcore root-io root-gui-ged

就足以支撑大部分 Geant4 开发之用,要是 cmake 的时候提示缺文件就再安装就行。

基本程序框架