简介:这份PDF资料聚焦核医学仿真软件GATE在Linux平台上的安装流程,面向从事核医学仿真、蒙特卡罗模拟研究的科研人员与研究生,尤其适合刚接触GATE、需要从零搭建仿真环境的中级用户。资源共1个PDF文件,压缩包约1.09MB,内容以文字步骤与命令行示例为主,便于随时查阅对照。资料围绕GATE安装前的环境准备展开,涵盖gcc与cmake的版本检查及安装、apt更新、针对Ubuntu 12.04至18.04不同系统版本所需依赖包的分类整理,并延伸至ROOT与Geant4的下载、解压、source配置及版本匹配要点,同时给出依赖冲突、包版本不符等常见问题的排查思路。目前已有1049人学习下载,适合希望快速理清GATE安装脉络、减少环境配置试错成本的读者参考。
1. 核医学仿真软件 GATE 8.0 安装:从零到跑通 benchmarkPET 的完整路径
如果你在做 PET/SPECT 探测器建模、剂量评估或者蒙特卡洛仿真,大概率绕不开 GATE 这个开源工具。它基于 Geant4 做底层粒子输运,用 ROOT 做数据存储和分析,在核医学领域算是比较成熟的仿真框架。但很多人第一次装 GATE 8.0 的时候,卡在依赖版本、环境变量、ccmake 配置这几步上,折腾两三天跑不起来是常事。这篇笔记把整个安装链路拆开,从 gcc/cmake 检查、Geant4 和 ROOT 的编译配置,到 GATE 本体编译、环境变量持久化,最后用 benchmarkPET 验证安装是否真正可用。适合刚接触 GATE 的研究生、做核医学成像仿真的工程师,以及需要在本机或服务器上复现仿真环境的人。下面按依赖顺序一步步来,每一步都给出可抄的命令和参数说明。
2. 依赖链拆解:gcc、cmake 与系统包的版本匹配
2.1 先查版本再动手,别急着 apt install
装 GATE 最容易翻车的地方不是 GATE 本身,而是底层依赖版本对不上。GATE 8.0 官方要求 Geant4 10.3 版本,而 Geant4 10.3 对 gcc 和 cmake 有最低版本要求。所以第一步不是下载 GATE,而是确认当前系统的编译工具链能不能撑住。
打开终端,先跑这两条:
gcc --version cmake --versiongcc 的输出里看版本号,比如gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0,只要不低于 4.8 就能用。cmake 建议 3.5 以上,低于这个版本在 ccmake 配置 Geant4 时会报奇怪的错误。如果提示command not found,说明系统里根本没装,直接走下一步。
注意:不要看到版本号不在官方推荐的区间就慌。官方 wiki 里写的
[4.8-6.2]是推荐范围,实际只要不低于最低版本就能编译通过。我见过用 gcc 9 编译 Geant4 10.3 也能跑通的,但遇到链接错误时优先考虑降级到 gcc 7 或 8。
2.2 安装 build-essential 和 cmake 的正确姿势
如果 gcc 或 cmake 缺失,用 apt 装是最省事的:
sudo apt-get update sudo apt-get install build-essential sudo apt-get install cmake cmake-curses-guibuild-essential是一个元包,里面包含 gcc、g++、make、libc6-dev 等一整套编译工具。单独装 gcc 容易漏掉 g++ 和 make,后面编译 Geant4 时会报make: command not found或者 C++ 链接错误。cmake-curses-gui提供 ccmake 这个带界面的配置工具,Geant4 和 GATE 的编译配置都靠它,必须装。
装完之后再跑一次gcc --version和cmake --version确认。如果系统里有多个版本的 gcc,可以用update-alternatives --config gcc切换默认版本。
2.3 按 Ubuntu 版本选包,别照搬所有命令
GATE 官方 wiki 按 Ubuntu 版本给出了不同的依赖包列表。核心逻辑是:老版本 Ubuntu 用 Qt4,新版本用 Qt5,但 GATE 8.0 的 ccmake 配置里对 Qt 的依赖并不强,主要是 Geant4 的可视化驱动需要。
对于 Ubuntu 16.04(GATE 8.0 + Geant4 10.3 的常见组合),执行:
sudo apt-get install cmake cmake-curses-gui build-essential \ libqt4-opengl-dev qt4-qmake libqt4-dev \ libx11-dev libxmu-dev libxpm-dev libxft-dev如果编译时想启用GATE_USE_OPTICAL(光学光子仿真),额外装:
sudo apt-get install libxml2-devUbuntu 18.04 的话把 Qt4 相关的包换成libqt5-default,其他 X11 库基本一致。这里有个血泪经验:如果 apt 报依赖冲突,不要硬扛,把报错信息里提到的依赖库按库名=版本号的格式手动指定安装。还不行就换 Ubuntu 16.04,这个版本和 GATE 8.0 + Geant4 10.3 的兼容性最稳。
提示:在开始编译之前,建议专门建一个目录放所有源码和安装文件,比如
~/simulation/,下面分root/、geant4/、gate/三个子目录。后面配环境变量时路径清晰,不容易搞混。
3. ROOT 与 Geant4 编译:ccmake 参数逐项拆解
3.1 ROOT 用二进制包,别自己编译
ROOT 的编译时间很长,而且依赖一堆系统库,除非有特殊需求,否则直接下载官方编译好的二进制包。去 ROOT 官网找到对应 Ubuntu 版本和 gcc 版本的 tar.gz 文件,比如root_v6.18.04.Linux-ubuntu16-x86_64-gcc5.4.tar.gz。
下载后解压并重命名:
tar -xzf root_v6.18.04.Linux-ubuntu16-x86_64-gcc5.4.tar.gz mv root root_v6.18.04然后 source 环境变量:
source ~/simulation/root/root_v6.18.04/bin/thisroot.sh验证是否成功,直接输入:
root如果进入 ROOT 的交互界面,说明安装没问题。thisroot.sh只在当前终端有效,换终端必须重新 source,这一点后面配 GATE 环境变量时会再处理。
3.2 Geant4 源码编译:ccmake 里哪几行必须改
Geant4 10.3 的源码包从官网下载,解压后建两个目录:
tar -xzf geant4.10.03.tar.gz mkdir geant4.10.03-build mkdir geant4.10.03-install cd geant4.10.03-build ccmake ../geant4.10.03.p03进入 ccmake 界面后,按c开始配置,会刷出一堆参数。以下几项需要重点关注:
| 参数名 | 推荐值 | 说明 |
|---|---|---|
| CMAKE_INSTALL_PREFIX | 绝对路径,如/home/user/simulation/geant4/geant4.10.03-install | 安装路径,必须写绝对路径 |
| GEANT4_INSTALL_DATA | ON | 自动下载物理数据文件,必须选 |
| GEANT4_USE_SYSTEM_CLHEP | OFF | GATE 7.0 之后用 Geant4 集成的 CLHEP |
| GEANT4_USE_QT | ON | 如果需要可视化界面 |
| GEANT4_USE_OPENGL_X11 | ON | OpenGL 可视化驱动 |
| GEANT4_BUILD_MULTITHREADED | ON | 多线程编译,加速仿真 |
配置完按c再配置一次,然后按g生成 Makefile 并退出。接着编译:
make -j4 make install-j4里的 4 是并行编译的核数,按自己 CPU 核心数填。编译过程大概 20 到 40 分钟,取决于机器性能。编译完成后 source 环境变量:
source ~/simulation/geant4/geant4.10.03-install/bin/geant4.sh3.3 版本对应关系是硬约束
Geant4 的版本直接决定 GATE 能不能编译成功。GATE 8.0 对应 Geant4 10.3,GATE 8.2 对应 Geant4 10.5。如果版本对不上,ccmake 配置 GATE 时会报找不到 Geant4 的库或者头文件不匹配。常见做法是:先确定要装的 GATE 版本,再去官方 wiki 查对应的 Geant4 版本,然后严格按这个版本下载源码编译。不要想着用 Geant4 11 去编译 GATE 8.0,链接阶段必挂。
4. GATE 8.0 编译与环境变量持久化
4.1 编译前必须 source 的两个脚本
GATE 的编译依赖 ROOT 和 Geant4 的环境变量。如果当前终端没有 source 这两个脚本,ccmake 配置时会找不到ROOTCINT_EXECUTABLE和Geant4_DIR。所以每次编译 GATE 之前,先执行:
source ~/simulation/root/root_v6.18.04/bin/thisroot.sh source ~/simulation/geant4/geant4.10.03-install/bin/geant4.sh然后解压 GATE 源码,建 build 和 install 目录:
tar -xzf Gate-8.0.tar.gz mkdir gate_v8.0-build mkdir gate_v8.0-install cd gate_v8.0-build ccmake ../gate_v8.04.2 ccmake 里只改两处,其他默认
GATE 的 ccmake 配置比 Geant4 简单得多。按c配置后,主要改两个地方:
第一处是CMAKE_INSTALL_PREFIX,改成gate_v8.0-install的绝对路径。第二处检查Geant4_DIR和ROOTCINT_EXECUTABLE是否指向正确的路径。如果这两个路径为空或者指向错误位置,说明前面 source 没生效,退出 ccmake 重新 source 再进来。
其他参数保持默认,ECAT7、ITK、LMF 这些可选包如果没装就保持 OFF。配置完按c再按g生成 Makefile。编译:
make -j4 make install编译时间比 Geant4 短很多,大概 5 到 10 分钟。
4.3 gate_env.sh 的写法和 .bashrc 持久化
GATE 安装完成后,在gate_v8.0-install/bin/下新建gate_env.sh:
#!/bin/sh source /home/user/simulation/root/root_v6.18.04/bin/thisroot.sh source /home/user/simulation/geant4/geant4.10.03-install/bin/geant4.sh export PATH=$PATH:/home/user/simulation/gate/gate_v8.0-install/bin路径换成自己的实际路径。如果启用了外部 CLHEP 或 ITK,把对应的 export 行取消注释并改路径。保存后 source 一下:
source ~/simulation/gate/gate_v8.0-install/bin/gate_env.sh输入Gate如果能进入 GATE 交互界面,说明环境变量配好了。但每次开终端都要 source 太麻烦,把这句话追加到~/.bashrc:
echo "source ~/simulation/gate/gate_v8.0-install/bin/gate_env.sh" >> ~/.bashrc这样每次打开终端会自动执行,不用手动 source。改完.bashrc后新开一个终端测试Gate命令是否直接可用。
5. 安装验证与常见问题排查
5.1 用 benchmarkPET 跑通第一个仿真
GATE 源码包里自带 benchmark 文件,在benchmarks/benchPET目录下。验证步骤:
cd ~/simulation/gate/Gate-8.0/benchmarks/benchPET ls rm -f benchmarkPET.root Gate benchPET.mac程序跑大约 1 分钟后按Ctrl+z终止。检查当前目录是否生成了benchmarkPET.root文件。然后启动 ROOT 查看结果:
root .x benchmarkPET.C如果能看到 PET 探测器的几何显示和能量沉积直方图,说明 GATE 的基本组件安装正确。
5.2 常见报错与排查记录
现象一:ccmake 配置 GATE 时报Geant4_DIR not found。原因:当前终端没有 source Geant4 的geant4.sh,或者 source 的路径和实际安装路径不一致。 解决:退出 ccmake,重新 sourcegeant4.sh和thisroot.sh,确认echo $Geant4_DIR有输出,再重新进 ccmake 配置。
现象二:编译 Geant4 时 make 报错undefined reference to CLHEP::...。原因:GEANT4_USE_SYSTEM_CLHEP设成了 ON,但系统里没有安装 CLHEP 或者版本不匹配。 解决:在 ccmake 里把GEANT4_USE_SYSTEM_CLHEP改成 OFF,用 Geant4 集成的 CLHEP,重新配置编译。
现象三:运行 Gate 时报error while loading shared libraries: libGATE.so。原因:LD_LIBRARY_PATH没有包含 GATE 的库路径,或者gate_env.sh没有 source。 解决:检查gate_env.sh里是否 export 了 GATE 的 lib 路径,手动 source 后再运行。如果还不行,在gate_env.sh里加一行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/gate_v8.0-install/lib。
现象四:apt 安装依赖包时报依赖冲突或版本不满足。原因:Ubuntu 版本和 GATE 要求的包版本不匹配,常见于 18.04 装 Qt4 相关的包。 解决:把报错的依赖库按库名=版本号格式手动指定安装。如果冲突太多,换 Ubuntu 16.04 重新来,这个版本和 GATE 8.0 的兼容性最好。
现象五:benchmarkPET 跑完没有生成 .root 文件。原因:benchPET.mac里的输出路径是相对路径,但当前工作目录不对,或者程序被提前终止。 解决:确认在benchPET目录下运行,检查 mac 文件里的/gate/output/root/setFileName参数。按Ctrl+z终止前至少等 1 分钟,让数据写入完成。
6. 进阶技巧:多版本共存与快速切换
装完 GATE 8.0 之后,如果后面要换 GATE 8.2 或者 9.0,不建议卸载重装。更省事的做法是每个版本独立编译到不同目录,然后用不同的gate_env.sh切换。比如建两个环境脚本:
# gate_v8.0_env.sh source /home/user/simulation/root/root_v6.18.04/bin/thisroot.sh source /home/user/simulation/geant4/geant4.10.03-install/bin/geant4.sh export PATH=$PATH:/home/user/simulation/gate/gate_v8.0-install/bin # gate_v8.2_env.sh source /home/user/simulation/root/root_v6.22.02/bin/thisroot.sh source /home/user/simulation/geant4/geant4.10.05-install/bin/geant4.sh export PATH=$PATH:/home/user/simulation/gate/gate_v8.2-install/bin切换时先source对应的脚本,再运行Gate。注意 ROOT 和 Geant4 的版本也要跟着换,不能混用。我一般会在.bashrc里加一个 alias:
alias gate80='source ~/simulation/gate/gate_v8.0_env.sh' alias gate82='source ~/simulation/gate/gate_v8.2_env.sh'这样在终端里输入gate80或gate82就能快速切换环境。但要注意,alias 只在当前终端生效,切换后之前 source 的环境变量会被覆盖,所以不要在一个终端里反复切换,容易出玄学问题。
另一个实用技巧是验证安装时用Gate --version查看当前 GATE 版本,确认环境变量指向的是正确的安装路径。如果输出和预期不符,检查PATH里 GATE 的 bin 目录顺序,后 source 的会排在前面。
从那以后我每次装 GATE 都强制走一遍 benchmarkPET 验证,不管编译过程看起来多顺利,跑不通 benchmark 就是没装好。希望帮到你。
本文还有配套的精品资源,点击获取