AlmaLinux 介绍
AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统,它填补了因 CentOS 稳定版本停止维护而留下的空白,同时更加强大。
安装 AlmaLinux
这个我用的是 windows 子系统进行安装
首先打开微软商店
,然后搜索AlmaLinux
,选择AlmaLinux9
安装。
安装依赖软件包
Cmake 安装
这里 Cmake 我是直接安装的,并没有自己编译,直接安装的版本完全够用。
sudo dnf install cmake
expat 安装
sudo dnf install expat.x86_64
qt5core 安装
sudo dnf install qt5*-devel.x86_64
安装 X11、Xmu 和 Motif 库
sudo dnf install libX11-devel libXmu-devel motif-devel
XercesC 安装
XercesC 在 AmlaLinux 中并不可以直接安装(也可能是我没找到),这里通过源码进行编译安装。
- 去xerces-c 网站获取下载链接
-
到终端使用命令
wget download-link
进行下载 -
使用命令解压
tar -zxvf 文件名.tar.gz
对文件进行解压 -
cd 下载后的文件夹
-
执行
./configure
命令 -
执行
make -j线程数
,如make -j8
-
执行
sudo make install
这样就是安装好了。
安装 Geant4
这里说一下,我一开始编译的是最新版的Geant4-11.1.2(截止到2023.10.10),但是报错,这里我就降低一个版本。
下载 Geant4 源码压缩文件与数据压缩文件
打开Old Geant4 releases
可以看到,最新版的是11.1.2
,所以我就下载11.1.1
,这里对 11.1.1 进行点击,打开网页页面如下图,这里获取下载链接方法与XercesC安装
获取下载链接方法相同,不再过多赘述。
然后就在终端进行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
内操作
- 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/to
是geant4-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
,下面遇到的所有情况同理。
cmake
成功后的示例,只要中间不爆红,不退出编译就行。
- make -j
再执行 make -j
(j 为并行核数),如make -j8
-
make install
最后执行make install
,就会将安装文件写入,指定的安装文件夹中。 -
将数据包 copy 到 Geant 中
cp -r /path/to/data /path/to/geant4-v11.1.1-build/share/Geant4
以上就编译好了
配置环境变量
- 执行
vi ~/.bashrc
命令,把下面内容添加到结尾。
# Geant4配置
export GEANT4=/path/to/geant4-v11.1.1-build
source $GEANT4/bin/geant4.sh
- 执行
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 个例程。
测试步骤:
- 进入复制的 B1 文件夹中
- 创建一个 build 文件夹并进入 build 文件夹:mkdir build && cd build
- 运行
cmake ..
命令
- 运行
make -j
可以看到已经生成一个exampleB1
文件。
- 运行
./exampleB1
命令
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()
个人感觉如果使用python来写root没有docker里面构建jupyter环境方便,而且在jupyter中可以写C++的ROOT代码。(需要Docker文件构建jupyter环境的私我)
直接使用 root 也是可以的。
END
好了,本期到此结束,我们下期再见