1. 环境准备与WSL2配置在Windows系统上通过WSL2运行Ubuntu22.04来部署Geant4首先要确保基础环境配置正确。我去年帮实验室三个同学搭建这个环境时发现90%的初期问题都源于WSL2配置不当。下面这些步骤都是我踩坑后总结的最佳实践第一步启用WSL2功能用管理员身份打开PowerShell运行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL2为默认版本wsl --set-default-version 2第二步安装Ubuntu22.04从Microsoft Store获取官方镜像安装完成后建议立即执行sudo apt update sudo apt upgrade -y这里有个细节要注意WSL2的内存分配默认是动态的如果跑大型模拟可能爆内存。我在%UserProfile%\.wslconfig里加了这些配置[wsl2] memory8GB swap4GB localhostForwardingtrue第三步图形界面支持Geant4的可视化需要X Server支持实测VcXsrv效果最稳定。安装后运行时勾选Disable access control然后在Ubuntu里设置echo export DISPLAY$(awk /nameserver / {print $2} /etc/resolv.conf):0 ~/.bashrc这个命令会自动获取宿主机的IP比硬编码IP更可靠。最近帮学弟调试时发现Windows防火墙有时会拦截连接记得添加入站规则放行TCP端口6000。2. 依赖安装与源码编译Geant4的依赖项比较多特别是Qt5和OpenGL相关库容易出问题。建议按以下顺序安装核心依赖包sudo apt install -y build-essential cmake qt5-default libgl1-mesa-dev \ libglu1-mesa-dev libxt-dev libxmu-dev libxerces-c-dev libxi-dev \ zlib1g-dev libgl2ps-dev libexpat1-dev libmotif-dev freeglut3-dev这里有个坑Ubuntu22.04默认的Qt版本可能导致GLSL编译错误。如果遇到shader报错可以尝试sudo apt install -y mesa-utils libglfw3-dev libglew-dev源码编译最佳实践下载Geant4 11.0.4当前稳定版wget https://gitlab.cern.ch/geant4/geant4/-/archive/v11.0.4/geant4-v11.0.4.tar.gz tar -xzf geant4-v11.0.4.tar.gz采用分离编译推荐mkdir g4build cd g4build cmake -DGEANT4_INSTALL_DATAON \ -DGEANT4_USE_OPENGL_X11ON \ -DGEANT4_USE_QTON \ -DCMAKE_INSTALL_PREFIX$HOME/geant4-install \ ../geant4-v11.0.4 make -j$(nproc) make install编译线程数建议设为CPU核心数的1.5倍我笔记本是8核所以用-j12。如果编译失败先尝试make -j1排除并行编译问题。3. 环境配置与验证环境变量设置不当是新手最常见的问题这里给出两种方案方案一手动配置推荐在~/.bashrc末尾添加source $HOME/geant4-install/bin/geant4.sh source $HOME/geant4-install/share/Geant4-11.0.4/geant4make/geant4make.sh export QT_QPA_PLATFORM_PLUGIN_PATH/usr/lib/x86_64-linux-gnu/qt5/plugins执行source ~/.bashrc后验证geant4-config --version应该输出11.0.4。方案二自动检测脚本如果怕路径写错可以用这个自动化脚本#!/bin/bash INSTALL_DIR$HOME/geant4-install if [ -f $INSTALL_DIR/bin/geant4.sh ]; then echo source $INSTALL_DIR/bin/geant4.sh ~/.bashrc fi if [ -d $INSTALL_DIR/share/Geant4-11.0.4 ]; then find $INSTALL_DIR/share/Geant4-11.0.4 -name geant4make.sh -exec echo source {} ~/.bashrc \; fi4. 可视化问题排查指南即使前面步骤都成功可视化环节还是可能翻车。以下是常见问题解决方案黑屏/花屏问题export LIBGL_ALWAYS_INDIRECT0 ./exampleB1如果正常了就把这行加入.bashrc。原理是禁用间接渲染实测对NVIDIA显卡特别有效。X11连接错误错误提示X11 connection rejected时检查VcXsrv是否以Disable access control模式运行执行xhost 临时允许所有连接检查.Xauthority文件权限chmod 600 ~/.XauthorityQt插件问题如果报错Could not load the Qt platform plugin尝试export QT_DEBUG_PLUGINS1 ./exampleB1这会输出详细加载日志常见解决方法sudo apt install --reinstall libxcb-xinerama0最后验证时建议从简单例子开始cd $HOME/geant4-install/share/Geant4-11.0.4/examples/basic/B1 mkdir build cd build cmake .. make ./exampleB1看到探测器几何图形和粒子轨迹才算真正成功。如果还有问题可以尝试改用Mesa软件渲染export LIBGL_ALWAYS_SOFTWARE1
WSL2 Ubuntu22.04 部署Geant4:从零到可视化实战指南
1. 环境准备与WSL2配置在Windows系统上通过WSL2运行Ubuntu22.04来部署Geant4首先要确保基础环境配置正确。我去年帮实验室三个同学搭建这个环境时发现90%的初期问题都源于WSL2配置不当。下面这些步骤都是我踩坑后总结的最佳实践第一步启用WSL2功能用管理员身份打开PowerShell运行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启后设置WSL2为默认版本wsl --set-default-version 2第二步安装Ubuntu22.04从Microsoft Store获取官方镜像安装完成后建议立即执行sudo apt update sudo apt upgrade -y这里有个细节要注意WSL2的内存分配默认是动态的如果跑大型模拟可能爆内存。我在%UserProfile%\.wslconfig里加了这些配置[wsl2] memory8GB swap4GB localhostForwardingtrue第三步图形界面支持Geant4的可视化需要X Server支持实测VcXsrv效果最稳定。安装后运行时勾选Disable access control然后在Ubuntu里设置echo export DISPLAY$(awk /nameserver / {print $2} /etc/resolv.conf):0 ~/.bashrc这个命令会自动获取宿主机的IP比硬编码IP更可靠。最近帮学弟调试时发现Windows防火墙有时会拦截连接记得添加入站规则放行TCP端口6000。2. 依赖安装与源码编译Geant4的依赖项比较多特别是Qt5和OpenGL相关库容易出问题。建议按以下顺序安装核心依赖包sudo apt install -y build-essential cmake qt5-default libgl1-mesa-dev \ libglu1-mesa-dev libxt-dev libxmu-dev libxerces-c-dev libxi-dev \ zlib1g-dev libgl2ps-dev libexpat1-dev libmotif-dev freeglut3-dev这里有个坑Ubuntu22.04默认的Qt版本可能导致GLSL编译错误。如果遇到shader报错可以尝试sudo apt install -y mesa-utils libglfw3-dev libglew-dev源码编译最佳实践下载Geant4 11.0.4当前稳定版wget https://gitlab.cern.ch/geant4/geant4/-/archive/v11.0.4/geant4-v11.0.4.tar.gz tar -xzf geant4-v11.0.4.tar.gz采用分离编译推荐mkdir g4build cd g4build cmake -DGEANT4_INSTALL_DATAON \ -DGEANT4_USE_OPENGL_X11ON \ -DGEANT4_USE_QTON \ -DCMAKE_INSTALL_PREFIX$HOME/geant4-install \ ../geant4-v11.0.4 make -j$(nproc) make install编译线程数建议设为CPU核心数的1.5倍我笔记本是8核所以用-j12。如果编译失败先尝试make -j1排除并行编译问题。3. 环境配置与验证环境变量设置不当是新手最常见的问题这里给出两种方案方案一手动配置推荐在~/.bashrc末尾添加source $HOME/geant4-install/bin/geant4.sh source $HOME/geant4-install/share/Geant4-11.0.4/geant4make/geant4make.sh export QT_QPA_PLATFORM_PLUGIN_PATH/usr/lib/x86_64-linux-gnu/qt5/plugins执行source ~/.bashrc后验证geant4-config --version应该输出11.0.4。方案二自动检测脚本如果怕路径写错可以用这个自动化脚本#!/bin/bash INSTALL_DIR$HOME/geant4-install if [ -f $INSTALL_DIR/bin/geant4.sh ]; then echo source $INSTALL_DIR/bin/geant4.sh ~/.bashrc fi if [ -d $INSTALL_DIR/share/Geant4-11.0.4 ]; then find $INSTALL_DIR/share/Geant4-11.0.4 -name geant4make.sh -exec echo source {} ~/.bashrc \; fi4. 可视化问题排查指南即使前面步骤都成功可视化环节还是可能翻车。以下是常见问题解决方案黑屏/花屏问题export LIBGL_ALWAYS_INDIRECT0 ./exampleB1如果正常了就把这行加入.bashrc。原理是禁用间接渲染实测对NVIDIA显卡特别有效。X11连接错误错误提示X11 connection rejected时检查VcXsrv是否以Disable access control模式运行执行xhost 临时允许所有连接检查.Xauthority文件权限chmod 600 ~/.XauthorityQt插件问题如果报错Could not load the Qt platform plugin尝试export QT_DEBUG_PLUGINS1 ./exampleB1这会输出详细加载日志常见解决方法sudo apt install --reinstall libxcb-xinerama0最后验证时建议从简单例子开始cd $HOME/geant4-install/share/Geant4-11.0.4/examples/basic/B1 mkdir build cd build cmake .. make ./exampleB1看到探测器几何图形和粒子轨迹才算真正成功。如果还有问题可以尝试改用Mesa软件渲染export LIBGL_ALWAYS_SOFTWARE1