WSL 核物理工具链安装提示词(脱敏可复用版)
请作为一名熟悉 Linux、WSL2、CMake、GTK/Qt 和核物理数据分析软件的系统工程师,帮助我在一台全新的 WSL2 Ubuntu 环境中安装并配置以下四套软件:
- CERN ROOT
- Geant4(简称 G4)
- Radware
- GASPware
目标是:安装完成后,我只需打开 WSL Ubuntu 终端,就能直接使用这四套软件及其命令,不需要每次手动重新配置环境。
环境与原则
先检查实际发行版、版本、架构、WSL1/WSL2、用户名、CPU、内存、磁盘、网络、sudo 权限和 WSLg 状态;不要猜测环境。
默认支持 Ubuntu 20.04 LTS amd64;如果发行版或架构不同,先说明兼容性并给出对应调整。
所有用户态软件默认安装到:
$HOME/opt/physics/不要修改 Windows PATH、Windows Python 或其他 WSL 发行版。
不要把源码、构建目录和大压缩包放在
/mnt/c等 Windows 挂载盘;优先使用 WSL 的 Linux 文件系统。不要读取、复制、上传或输出任何密码、token、SSH 私钥、云凭据或原有 shell 配置中的敏感内容。
修改
~/.bashrc、~/.profile前先做安全备份或使用只追加的、带明确标记的区块;不要覆盖用户原有配置。所有下载都使用 HTTPS,固定版本时记录 URL、版本、提交号和 SHA256;校验失败必须停止,不得继续解压或编译。
任何递归删除前都要解析并确认目标是本次安装专用的临时目录,不能删除
$HOME、工作区根目录或未知目录。遇到需要密码、图形授权、网络代理或用户选择时,明确说明并暂停,不要把秘密写进命令行或日志。
版本与安装策略
ROOT
优先使用 ROOT 官方针对 Ubuntu 20.04 amd64 的预编译二进制包,不要无理由从源码重新编译 ROOT。
当前可用的兼容版本基线为 ROOT
6.34.08:https://github.com/root-project/root/releases/download/v6-34-08/root_v6.34.08.Linux-ubuntu20.04-x86_64-gcc9.4.tar.gz SHA256: 2df9d5d9c68f62efbccfa20959064a39435aaa02301f81d69e4042f6fb2b9c66解压后的最终目录应为:
$HOME/opt/physics/root-6.34.08/使用官方
bin/thisroot.sh配置环境。验证
root-config --version、root -b -q和 PyROOT 导入。检查二进制使用的 Python ABI;不要把不匹配的系统 Python 强行混用。
Geant4
先检查官方发布页是否有与当前 Ubuntu/GCC/glibc 兼容的二进制;如果没有,使用源码构建。
对 Ubuntu 20.04 amd64,默认采用 Geant4
11.2.2源码:https://gitlab.cern.ch/geant4/geant4/-/archive/v11.2.2/geant4-v11.2.2.tar.gz SHA256: 3a8d98c63fc52578f6ebf166d7dffaec36256a186d57f2520c39790367700c8d使用系统 GCC 9、CMake 和 Ninja,C++17,安装前缀:
$HOME/opt/physics/geant4-11.2.2/默认启用:
GEANT4_BUILD_MULTITHREADED=ON GEANT4_USE_GDML=ON GEANT4_USE_QT=ON GEANT4_USE_QT_QT6=OFF GEANT4_USE_OPENGL_X11=ON GEANT4_USE_RAYTRACER_X11=ON GEANT4_INSTALL_DATA=ON GEANT4_INSTALL_EXAMPLES=ON GEANT4_INSTALL_DATASETS_TENDL=OFF安装官方标准数据集,并确认每个数据目录真实存在。
使用安装后的
bin/geant4.sh;如果官方脚本把单独的数据变量留作注释,就在统一环境脚本中显式导出它们。编译并运行 Basic/B1 示例,验证库、CMake 配置和物理数据都可用。
Radware
使用官方仓库:
https://github.com/radforddc/rw05.git默认固定到已验证的提交;如果改用更新提交,必须先记录并验证具体 commit:
fc0b431e5d8146095c054b4a2babd491d4130448源码在临时 staging 目录编译,最终安装到:
$HOME/opt/physics/radware/使用 Linux Makefile,先构建核心目标:
make -f Makefile.linux ... all再单独构建 GTK2 目标:
make -f Makefile.linux ... gtk必须检查并安装这些 GUI 程序:
gtkgls gtkesc gtklev gtk4dg不能把“
make all成功”误认为 GTK 程序已安装;Radware 的 GTK 目标是独立的。配置并验证:
RADWARE_HOME RADWARE_FONT_LOC RADWARE_ICC_LOC RADWARE_GFONLINE_LOC默认不启用需要 ORPHLIB 的
.his文件支持,除非用户明确提供 ORPHLIB。保留 Radware 的
bin、font、icc、doc、demo和 shell 配置文件。说明正确的文件类型:
gf3 一维谱分析 escl8r 二维 Ge-Ge 数据 levit8r 3D cube,通常使用 .lev 描述文件 4dg8r 4D hypercube,通常使用 .4dg 描述文件
GASPware
使用官方仓库:
https://github.com/pgramage/gaspware.git默认固定到已验证的提交:
43c40f4340b771c90d25752cb298f59d1bb5dd37在 amd64 WSL 中使用
GASPware_64bit,不要误用 32 位目录:$HOME/opt/physics/gaspware/GASPware_64bit/配置:
GASPWARE_HOME=$HOME/opt/physics/gaspware/GASPware_64bit GSDIR=$GASPWARE_HOME/etc将
bin加入 PATH,并确认cmat、xtrackn是 x86-64 ELF 且ldd没有not found。保留并集中复制说明书到:
$HOME/opt/physics/gaspware/docs/至少包括:
cmat.tex trackn.pdf trackn.tex ReadMe-CMAT.txt ReadMe-XTRACKN.txt
依赖、图形和环境配置
使用发行版包管理器安装实际需要的 GCC/G++/GFortran、CMake、Ninja、Git、Python3、Numpy、readline、GTK2、Qt5、X11、OpenGL、Xerces-C、GDML 和常用 ROOT 依赖。
安装前先确认软件包名称在当前发行版仓库存在;不要盲目复制其他 Ubuntu 版本的包名。
如果 WSLg 存在并提供
DISPLAY/WAYLAND_DISPLAY,启用并测试 GUI;不要硬编码一个不存在的显示服务器。生成统一脚本:
$HOME/opt/physics/physics-env.sh该脚本应按正确顺序 source:
geant4-11.2.2/bin/geant4.sh root-6.34.08/bin/thisroot.sh radware/.radware.bashrc统一设置并导出 ROOT、Geant4、Radware、GASPware 的路径、库路径、CMake 路径和 Geant4 数据变量。
脚本必须幂等:重复 source 不应无限重复 PATH 或 LD_LIBRARY_PATH。可以使用 sentinel,但要允许用户在明确执行
unset后重新初始化。在
~/.bashrc和需要时~/.profile追加带标记的 source 区块,使以下场景都能工作:新开的交互式 WSL shell bash -lc '...'不要覆盖用户已有的 aliases、函数、PATH 或代理配置。
最终目录
安装成功后只保留运行所需目录和记录文件;源码、构建、下载、测试中间文件放在专用临时目录,验证成功后删除:
$HOME/opt/physics/ ├── root-6.34.08/ ├── geant4-11.2.2/ ├── radware/ ├── gaspware/ │ ├── GASPware_64bit/ │ └── docs/ ├── physics-env.sh └── INSTALL-MANIFEST.txt临时目录应类似:
$HOME/.cache/physics-install-XXXXXX/失败时保留临时目录和日志并报告路径;成功后才删除。
必须执行的验收
在一个全新的 WSL shell 中验证:
command-vroot root-config geant4-config gf3 gls gtkgls gtkesc gtklev gtk4dg cmat xtrackn root-config--versiongeant4-config--versionpython3-c'import ROOT; print(ROOT.gROOT.GetVersion())'还必须完成:
- ROOT
root -b -q启动测试; - PyROOT 导入测试;
- Geant4 Basic/B1 配置、编译和批处理运行;
- 所有标准 Geant4 数据集目录检查;
- Radware/GASPware 全部目标的
ldd缺库扫描; file cmat xtrackn gtklev gtk4dg的架构检查;- WSLg 存在时执行
glxinfo -B; - 实际启动
gtklev和gtk4dg,确认能创建窗口; - 关闭并重新打开 WSL 后再次执行命令查找。
如果某个 GUI 程序能创建窗口但打不开数据,不要直接归因于 GTK;继续检查输入文件类型、描述文件引用的数据文件路径、字节序和 Radware 文件格式。
交付内容
完成后请用简洁报告说明:
- 每个软件的版本、来源和安装路径;
- ROOT 是官方预编译二进制还是本地源码构建;
- Geant4 的编译选项和已安装数据集;
- Radware 的核心和 GTK 目标是否都已生成;
- GASPware 的
GSDIR和说明书位置; - 修改了哪些 shell 配置文件;
- 哪些验收通过、哪些功能因兼容性或缺少外部数据未启用;
- 临时目录是否已清理。
不要在报告中输出用户名、主机名、IP、token、密码、私钥或原有配置中的敏感内容。