AlmaLinux (兼容centos)安装Geant4与ROOT

AlmaLinux 介绍

AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统,它填补了因 CentOS 稳定版本停止维护而留下的空白,同时更加强大。

安装 AlmaLinux

这个我用的是 windows 子系统进行安装

首先打开微软商店,然后搜索AlmaLinux,选择AlmaLinux9安装。

AlmaLinux (兼容centos)安装Geant4与ROOT_第1张图片

安装依赖软件包

Cmake 安装

这里 Cmake 我是直接安装的,并没有自己编译,直接安装的版本完全够用。

sudo dnf install cmake

expat 安装

sudo dnf install expat.x86_64 expat expat-devel

qt5core 安装

sudo dnf install 'qt5*-devel.x86_64'

安装 X11、Xmu 和 Motif 库

sudo dnf install libX11-devel libXmu-devel motif-devel

XercesC 安装

XercesC搜索不到

XercesC 在 AmlaLinux 中并不可以直接安装(也可能是我没找到),这里通过源码进行编译安装。

  1. 去xerces-c 网站获取下载链接

AlmaLinux (兼容centos)安装Geant4与ROOT_第2张图片

  1. 到终端使用命令wget download-link进行下载

  2. 使用命令解压tar -zxvf 文件名.tar.gz对文件进行解压

  3. cd 下载后的文件夹

  4. 执行./configure命令

  5. 执行make -j线程数,如make -j8

  6. 执行sudo make install

这样就是安装好了。

安装 Geant4

这里说一下,我一开始编译的是最新版的Geant4-11.1.2(截止到2023.10.10),但是报错,这里我就降低一个版本。

下载 Geant4 源码压缩文件与数据压缩文件

打开Old Geant4 releases

AlmaLinux (兼容centos)安装Geant4与ROOT_第3张图片

可以看到,最新版的是11.1.2,所以我就下载11.1.1,这里对 11.1.1 进行点击,打开网页页面如下图,这里获取下载链接方法与XercesC安装获取下载链接方法相同,不再过多赘述。

AlmaLinux (兼容centos)安装Geant4与ROOT_第4张图片

然后就在终端进行wget下载。

注意:这里我把 Geant4 的源码压缩包与 dataset 文件在同一文件夹下

这里对于数据集的下载我是mkdir dataset一个文件夹,然后进入dataset文件夹中,对数据集文件进行wget,这里数据集的下载链接获取同上。

这里可以使用解压命令对Geant4的压缩文件进行解压。

看上图可以发现我也创建了一个data文件夹,这时候我把dataset里面的数据集压缩文件复制到data文件夹中,这里 dataset 文件夹是做备份用的,防止以后用。这里之所以创建一个data文件夹是因为后面编译好的Geant4还需要data文件夹存放数据集,这里我就直接创建,到时候复制就好了。

# 把dataset中的数据集压缩文件复制到data文件夹
cp -r /path/to/dataset/*tar.gz /path/to/data

# 批量解压tar.gz文件
for file in *.tar.gz; do tar -zxvf "$file"; done

# 批量删除tag.gz文件
rm -rf *tar.gz

编译 Geant4

注意都是在Geant-v11.1.1-build内操作

  1. cmake

当解压好 Geant4 压缩文件后,创建一个Geant-v11.1.1-build文件夹(可以根据自己的文件创建,甚至创建为 Geant4-build 都可以,没有要求),然后使用下面命令进行编译(cd到 Geant-v11.1.1-build 文件夹内进行执行)。

cmake -DCMAKE_INSTALL_PREFIX=/path/to/geant4-v11.1.1-build -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_XM=ON /path/to/geant4-v11.1.1
注意/path/togeant4-v11.1.1-build文件夹的父路径,需要自己替换/path/to/geant4-v11.1.1-build为源码文件夹,/path/to/geant4-v11.1.1-build为要安装的位置,这里pwd一下自己进行路径替换。如geant4-v11.1.1-build/home/admin/app下,那么path/to就是/home/admin/app,下面遇到的所有情况同理。

AlmaLinux (兼容centos)安装Geant4与ROOT_第5张图片

cmake成功后的示例,只要中间不爆红,不退出编译就行。

  1. make -j

再执行 make -j(j 为并行核数),如make -j8

AlmaLinux (兼容centos)安装Geant4与ROOT_第6张图片

  1. make install
    最后执行make install,就会将安装文件写入,指定的安装文件夹中。

  2. 将数据包 copy 到 Geant 中

cp -r /path/to/data /path/to/geant4-v11.1.1-build/share/Geant4

以上就编译好了

配置环境变量

  1. 执行vi ~/.bashrc命令,把下面内容添加到结尾。
# Geant4配置
export GEANT4=/path/to/geant4-v11.1.1-build
source $GEANT4/bin/geant4.sh
  1. 执行source ~/.bashrc命令

测试

进入存放例子的文件夹,复制一个例程。

我的存放路径是/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic/B1

这里我复制的是B1,其在/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic路径下。basic文件夹是基本的例程,有B1~B5的 5 个例程。

测试步骤:

  1. 进入复制的 B1 文件夹中
  2. 创建一个 build 文件夹并进入 build 文件夹:mkdir build && cd build
  3. 运行cmake ..命令

AlmaLinux (兼容centos)安装Geant4与ROOT_第7张图片

  1. 运行make -j

AlmaLinux (兼容centos)安装Geant4与ROOT_第8张图片

可以看到已经生成一个exampleB1文件。

  1. 运行./exampleB1命令

AlmaLinux (兼容centos)安装Geant4与ROOT_第9张图片

ROOT 安装

命令:

sudo dnf install root python3-root

这里无法使用 jupyter,发现其依赖 gui,暂时不可用,但是可以在 python 上使用 ROOT,运行python3就可以import ROOT,对于在该系统下的 jupyter 使用 ROOT,后面解决了再出文章。

示例:

from ROOT import TH1D,TCanvas
# 创建一个叫c1的画布,标题为Histograms Exmple,画布宽600,高900
c1 = TCanvas("c1", "Histograms Exmple", 800, 600)
# 创建一个叫h1d1,标题为TH1D Exmple,把[-10,10]区间分为200个小区间的直方图
h1d1 = TH1D("h1d1", "TH1D Exmple", 200, -10, 10)
# FillRandom 用于高斯分布、泊松分布等填充。
h1d1.FillRandom("gaus", 10000)  # 使用gaus,并填充10000个数据
h1d1.Draw()

AlmaLinux (兼容centos)安装Geant4与ROOT_第10张图片

个人感觉如果使用python来写root没有docker里面构建jupyter环境方便,而且在jupyter中可以写C++的ROOT代码。(需要Docker文件构建jupyter环境的私我)

直接使用 root 也是可以的。

AlmaLinux (兼容centos)安装Geant4与ROOT_第11张图片

END

好了,本期到此结束,我们下期再见

你可能感兴趣的:(Geant4,ROOT,centos,linux,Geangt4,ROOT,almalinux)