使用Debain12搭建geant4&root环境

虚拟机: vmware17

系统:Debain12

虚拟机安装连接

使用Debian会产生的问题

1.如果在安装时填写了root用户密码,则新用户默认为非sudoer,建议不填写,新用户默认为sudoer

如果已经安装,须进行修改(需提前安装vim,或使用vi)

su root
vim /etc/sudoers
#在sudo用户组里修改在命令模式下使用/查找sudo即可
用户名 ALL=(ALL:ALL) ALL
#如:hushiqi ALL=(ALL:ALL) ALL 

2.如果你安装系统时采用是联网安装,则系统会帮助你自动安装VMwaretools

如果没有联网安装则需要手动安装

sudo sed -i 's/cn.archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list


sudo apt update

安装vm-tools,这一步是如果是在虚拟机里面需要安装的
sudo apt install open-vm-tools
sudo apt install open-vm-tools-desktop -y

sudo reboot

这样才能向虚拟机传输文件

或者使用xshell建立一个ssh,笔者推荐后者(但要注意不必修改网关,只需要安装openssh即可)

Geant4的安装

借用B站一位up主视屏https://www.bilibili.com/video/BV1zf4y147sC/?spm_id_from=333.337.search-card.all.click&vd_source=37c4d37c4b1ca66e1da081bda101b2d0

 以下命令需按需求进行一定修改

# 右击终端打开
cd ~
# 将刚刚传入的文件移动到opt目录下
sudo mv geant4/ /opt/
# 进入下载的文件的文件夹目录
cd /opt/geant4/file/
# 移动下载的geant4-v11.0.0.tar.gz到上级目录
sudo mv /opt/geant4/file/geant4-v11.0.0.tar.gz ..
# 返回上一级
cd ..
# 解压
sudo tar -zxvf geant4-v11.0.0.tar.gz

# 安装依赖工具
sudo apt install curl g++ libgl1-mesa-dev cmake libx11-dev libxext-dev libxtst-dev libxrender-dev libxmu-dev  libxmuu-dev libhdf5-serial-dev hdf5-tools libexpat1 libexpat1-dev build-essential -y
# 支持安装qt5
sudo apt install qtbase5-dev -y
#如果要开启GDML,必须要安装下面这个依赖
sudo apt install libxerces-c-dev -y

mkdir geant4-build
mkdir geant4-install
cd geant4-build

#这是我所需要的选项,根据不同的项目需要打开不同的选项,对应的安装不同的依赖
sudo cmake -DCMAKE_INSTALL_PREFIX=/opt/geant4/geant4-install 
    -DGEANT4_USE_OPENGL_X11=ON 
    -DGEANT4_USE_RAYTRACER_X11=ON 
    -DGEANT4_USE_QT=ON 
    -DGEANT4_USE_GDML=ON
    GEANT4_BUILD_MULTITHREADED=ON 
    /opt/geant4/geant4-v11.0.0

这里11.2版本出现问题
# 一直提示VecGeom出现依赖缺失
#我使用CERN gitlab所给出的VecGeom1.2.6以上版本进行了测试,cmake提示无法识别VecGeom版本号,建议使用11.0.0-11.1.3稳定版本
sudo cmake -DCMAKE_INSTALL_PREFIX=/opt/geant4/geant4-install 
	-DCMAKE_PREFIX_PATH=/opt/VecGeom-v1.2.6/build/CMakeFiles/VecGeomConfig.cmake
    -DGEANT4_USE_OPENGL_X11=ON 
    -DGEANT4_USE_RAYTRACER_X11=ON 
    -DGEANT4_USE_QT=ON 
    -DGEANT4_USE_GDML=ON
    -DGEANT4_USE_FREETYPE=ON
    -DGEANT4_USE_HDF5=ON
    -DGEANT4_USE_USOLIDS="all"
    GEANT4_BUILD_MULTITHREADED=ON 
    /opt/geant4/geant4-v11.2.0
    
# -jN表示应用的电脑逻辑处理器数,应用数目越多,速度越快(期间可能会有警告,但可正常安装)
sudo make -j8

# 进行安装
sudo make install -j8

# 打开用户的环境变量的文件,根据要求输入密码。
sudo gedit ~/.bashrc
sudo vim ~/.bashrc
# 在该文件最后一行,换行,添加语句:
source /opt/geant4/geant4-install/bin/geant4.sh
# 保存,关闭。




## 5.安装geant4的数据包
```bash
# 右击终端打开
cd /opt/geant4/geant4-install/bin
sudo ./geant4-config --install-datasets
# 有百分比的时候按下`crtl`+`c`的按键,终止下载,因为很慢
# 这时候就需要把之前下载的文件移动过来

# 进入下载的文件的文件夹目录
cd /opt/geant4/file/

# 移动数据包到geant4的安装目录下
sudo mv G4*.tar.gz /opt/geant4/geant4-install/share/Geant4-11.0.0/data

# 然后执行:(在data文件夹下批量解压)
cd /opt/geant4/geant4-install/share/Geant4-11.0.0/data
sudo ls *.tar.gz | sudo xargs -n1 tar xzvf

# geant4的数据包已经安装完成
sudo rm -rf G4*.tar.gz

Root的安装

笔者不推荐使用预编译的版本这会导致各种问题出现,例如在之后的安装garfieldpp或GATE中会出现各种问题,例如编译库缺失等等。

你可以采用https://root.cern/install/#build-from-source官网提供的教程进行编译

但很可能无法clone成功

因此我采用另一种方法

首先进入https://github.com/root-project/root   找到你所需版本,得到.tar.gz的源代码

关于如何获得.tar.gz源代码,参考:

https://blog.csdn.net/weixin_45503180/article/details/121131818

或者使用F12进入开发者模式,查找download按键请求网址。(推荐)

在合适的位置编译。

cmake -DCMAKE_INSTALL_PREFIX=../root_install ../root_src  output for warnings or errors
cmake --build . -- install -j4

时间较长,耐心等待。

j8预计在半个小时左右

安装完成之后

sudo vim /.bashrc

添加thisroot.sh和geant4.sh两个环境变量

source +路径

出错的话执行 source ~/.bashrc