本文旨在以新手的角度,成功的在windows的linux子系统(wsl)中安装并运行Geant4.
这样有几点好处:
网上有很多关于如何安装G4的教程,但笔者在照抄他们的过程中遇到很多问题,这里就笔者在顺利安装好的基础上,介绍一下安装的大体流程(以Geant4.10.05为例)。这里感谢深深哥的讲解。
ps:如果是直接在ubuntu(linux)中安装Geant4,参照本教程进行也是没有问题的。
ps:新增安装ROOT的内容,非常简单,一步搞定
如果怎么安装都出问题,就参照Geant4官方说明吧。
http://geant4-userdoc.web.cern.ch/geant4-userdoc/UsersGuides/InstallationGuide/html/installguide.html#on-unix-platforms
https://sq.163yun.com/blog/article/177850828211544064
https://blog.csdn.net/zyx_ly/article/details/89372558
http://geant4.web.cern.ch/support/download
http://www.mamicode.com/info-detail-2183036.html
https://www.jianshu.com/p/344185d97476
https://xming.en.softonic.com/
接下来的内容都是基于配置好Windows子系统后,在子系统中安装Geant4的操作。
如果曾经启用过WSL,请跳至这一板块的第4点,安装cmake和一些相关库。
首先确保电脑的系统是windows10,然后在 控制面板 中找到 启用或关闭windows功能,在最后几项中找到并勾选 适用于Linux的Windows子系统
之后,打开windows的应用商店,搜索 Ubuntu,接下来的教程均以第一个为例。如果在多年以后版本更迭,导致镜像源的版本不对,还请读者自行百度更换合适的镜像源。
在重启(设置了windows功能后会要求重启)并安装注册好Ubuntu后,按照上面第二篇参考文献https://blog.csdn.net/zyx_ly/article/details/89372558 的方式,设置系统镜像源(不是必须的,建议这样做,会使后面的速度快很多)。
这里直接将这篇文章提到的操作抄过来:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo apt-get install vim
sudo vim /etc/apt/sources.list
将原有内容用下面的代码替换掉:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
然后执行:
sudo apt-get update
sudo apt-get upgrade
简要解释下,第一步的操作是备份原来的源,如果还源后用不了,还可以换回来。第二步是安装vim,第三步是用vim编辑源。第四步是更新源。具体参照前面附的第二篇参考文章。
安装所需要的依赖(参考这里http://www.mamicode.com/info-detail-2183036.html )
sudo apt-get install cmake build-essential libgl1-mesa-dev libglu1-mesa-dev libxt-dev libxmu-dev libxi-dev zlib1g-dev libgl2ps-dev libexpat1-dev libxerces-c-dev
好了,做完这一步,Linux子系统就准备的差不多了。
首先从官网上下载Geant4,参考上面网址的教程,以geant4.10.05为例;注意,除了下载Source Files下的文件以外,也要下载全部的Data files的文件并解压缩后放入data文件夹(因为安装过程中g4很难做到自动下载)
将下载好的geant4.10.05解压缩到一个全英文路径,注意全部路径名不能有空格,(别的特殊符号不清楚可不可以),建议全英文无特殊符号路径。
建议尽量放在盘根目录,不然可能在make的时候会出现moc: Cannot open options file specified with @ 的报错
在上述文件夹中新建build文件夹,进入其中,打开ubuntu(可以在文件夹里上方的导航栏中直接输入bash或者wsl打开)。此时文件路径应该为如下这样:
再说一遍,是进入刚才新建的 build 文件中 然后(参照前面的网页教程,)依次执行:
sudo apt-get install qt5* --fix-missing # 安装QT5
cmake -DCMAKE_INSTALL_PREFIX=.. -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON .. # 准备编译
make -j4 # 编译
make install
这里第二条指令是控制安装Geant4的很多功能的。如果不想折腾,可以直接参照这里的执行。把官方对指令的说明搬运到这里,有点多:
http://geant4-userdoc.web.cern.ch/geant4-userdoc/UsersGuides/InstallationGuide/html/installguide.html#on-unix-platforms
如果这里在安装 qt 界面的时候出现了问题,提示 --fix-missing 什么的,请参考提示以这种形式重新输入指令( sudo apt-get install qt5* --fix-missing )以安装qt。
其中make特别的慢…耐心等待就好。(可以根据计算机使用 make -j4 或者make -j8 命令以实现并行加速)
注意这里我们要安装QT图形界面,而且不自动下载Data files文件,故不能按照网页的指示来,(如不清楚如何修改)这里的cmake指令请按照本文档方式输入。
其中,第一条指令的目的就是先下载好QT5,这样才能在cmake中勾选安装的指令。
加载Geant4运行时的环境
这里建议修改 .bashrc 文件,实现每次启动终端时自动执行,以后就不用每次在启动Geant4前手动执行这个指令了:
source /mnt/w/geant4.10.05/bin/geant4.sh
修改 .bashrc 方法如下:
vim ~/.bashrc
此时,就算是将Geant4安装好了
但是在参照例子,在B1的例程新建Build,并cmake… ;make好后,发现直接执行
./exampleB1
会报错:
exampleB1: cannot connect to X server
这是因为还没有安装图形界面
这里可以直接翻到网页教程中间偏后的地方,我们只借鉴其中的一部分。
下载并安装 xming 后,并在~/.bashrc中配置将显示输出转发给宿主机(windows)的端口上的操作,在子系统(ubuntu)中执行:
echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
. ~/.bashrc
sudo apt-get install x11-apps
安装好后,再运行:
xeyes
如果能在屏幕左上角看到眼睛,就ok啦。
关掉眼睛之后,运行 xming.launch ,一路默认选项就好,安装并启动后,再在之前的B1例程中,输入
采用子系统的方式运行Geant4比用虚拟机方便且速度快了很多,值得尝试。
当然,在这个时候你可能会想,“唔,总算是弄好了,就是字体有点小,看着不太舒服”。当然是有解决办法的:
原来在虚拟机里面,别说300,运行200个events就有点卡了,现在在WSL子系统中非常的顺滑流畅。
最后也祝大家在学习Geant4上,一路顺风,多产出几篇SCI为中华科学之崛起而读书。
# 安装依赖:
sudo apt-get install gfortran libpcre3-dev \
xlibmesa-glu-dev libglew1.5-dev libftgl-dev \
libmysqlclient-dev libfftw3-dev libcfitsio-dev \
graphviz-dev libavahi-compat-libdnssd-dev \
libldap2-dev python-dev libxml2-dev libkrb5-dev \
libgsl0-dev -Y
# 下载ROOT文件并解压缩
wget https://root.cern/download/root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
tar -xzvf root_v6.24.02.Linux-ubuntu20-x86_64-gcc9.3.tar.gz
source root/bin/thisroot.sh # also available: thisroot.{csh,fish,bat}
就好了,非常简单
当然,也可以将 “source root/bin/thisroot.sh” 加入到 ~/.bashrc
echo "source "`pwd`"/root/bin/thisroot.sh" >> ~/.bashrc # `pwd`表示获取当前路径
像下面这样就表示添加好了,之后每次启动bash都会自动加载root环境。
$ cat ~/.bashrc | grep thisroot # 输入这条命令,查看~/.bashrc中关于thisroot的句子
>> source /home/wsl2/Application/root/bin/thisroot.sh # 出现类似字符,就表示环境添加好了
WSL的ubuntu版本18.04,geant4的版本10.05,应该能按照本教程正常安装的(至少我和同学的8人次安装都没问题)。如果出了问题,请检查是否严格按顺序执行了每一步。可能在安装的过程中会有abort之类的情况,根据命令行回显的提示多试几次应该就好了。
感谢资料的来源(说的就是上面的几个网站)
感谢深深哥找到了所有的资料,并独自走完了以上所有流程,并教会了我。
笔者在这里只是起到了概括和转述的作用。
MG 于
2019/6/13 09:30:05
完成初稿
于
2019/6/25 16:36:13
第二次修改,将过程写的更详细,确保大家能看懂并操作会。
于
2019/10/13 10:40:29
第三次修改,将原来写的容易出错的步凑稍作修改
于
2019/10/16 19:37:35
第四次修改,将原来安装的qt4改为qt5;新增修改xming分辨率的步凑,使得界面更加好看。加入了Geant4官方安装指南的链接,可供参考。
于
2021/11/10 12.08:09
第五次修改,新增关于ROOT的安装。