Geant4 及ROOT 在windows子系统(WSL)中的快速安装

本文旨在以新手的角度,成功的在windows的linux子系统(wsl)中安装并运行Geant4.
这样有几点好处:

  • 能够直接在windows界面下对文件进行管理,如果linux系统使用不熟练的话,这样会更方便
  • 实感运行速度比虚拟机快很多
  • 占用空间小,安装虚拟机+Geant4需要20G;而wsl+Geant4只需要4G

网上有很多关于如何安装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

配置windows子系统:

https://sq.163yun.com/blog/article/177850828211544064
https://blog.csdn.net/zyx_ly/article/details/89372558

下载安装Geant4

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的操作。

配置Linux子系统(WSL)

如果曾经启用过WSL,请跳至这一板块的第4点,安装cmake和一些相关库。

  1. 首先确保电脑的系统是windows10,然后在 控制面板 中找到 启用或关闭windows功能,在最后几项中找到并勾选 适用于Linux的Windows子系统
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第1张图片

  2. 之后,打开windows的应用商店,搜索 Ubuntu,接下来的教程均以第一个为例。如果在多年以后版本更迭,导致镜像源的版本不对,还请读者自行百度更换合适的镜像源。
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第2张图片

  3. 在重启(设置了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编辑源。第四步是更新源。具体参照前面附的第二篇参考文章。

  4. 安装所需要的依赖(参考这里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

  1. 首先从官网上下载Geant4,参考上面网址的教程,以geant4.10.05为例;注意,除了下载Source Files下的文件以外,也要下载全部的Data files的文件并解压缩后放入data文件夹(因为安装过程中g4很难做到自动下载)

    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第3张图片
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第4张图片

  2. 将下载好的geant4.10.05解压缩到一个全英文路径,注意全部路径名不能有空格,(别的特殊符号不清楚可不可以),建议全英文无特殊符号路径。

建议尽量放在盘根目录,不然可能在make的时候会出现moc: Cannot open options file specified with @ 的报错

  1. 在上述文件夹中新建build文件夹,进入其中,打开ubuntu(可以在文件夹里上方的导航栏中直接输入bash或者wsl打开)。此时文件路径应该为如下这样:
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第5张图片

  2. 再说一遍,是进入刚才新建的 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中勾选安装的指令。

  1. 将之前单独下载并解压缩好后的data文件夹,放入share/Geant4-10.5.0文件夹中
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第6张图片

  2. 加载Geant4运行时的环境
    这里建议修改 .bashrc 文件,实现每次启动终端时自动执行,以后就不用每次在启动Geant4前手动执行这个指令了:

     source /mnt/w/geant4.10.05/bin/geant4.sh
    

    修改 .bashrc 方法如下:

     	vim ~/.bashrc
    

    在最后一行填上上述命令,使得如下图:
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第7张图片

此时,就算是将Geant4安装好了

但是在参照例子,在B1的例程新建Build,并cmake… ;make好后,发现直接执行

./exampleB1

会报错:

exampleB1: cannot connect to X server

这是因为还没有安装图形界面

安装图形界面

这里可以直接翻到网页教程中间偏后的地方,我们只借鉴其中的一部分。

  1. 下载并安装 xming 后,并在~/.bashrc中配置将显示输出转发给宿主机(windows)的端口上的操作,在子系统(ubuntu)中执行:

     echo "export DISPLAY=localhost:0.0" >> ~/.bashrc  
     . ~/.bashrc
     sudo apt-get install x11-apps
    

    安装好后,再运行:

     xeyes
    

    如果能在屏幕左上角看到眼睛,就ok啦。

  2. 关掉眼睛之后,运行 xming.launch ,一路默认选项就好,安装并启动后,再在之前的B1例程中,输入

    ./exampleB1
    即可运行了。
    大概是这样的:
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第8张图片

采用子系统的方式运行Geant4比用虚拟机方便且速度快了很多,值得尝试。

Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第9张图片
当然,在这个时候你可能会想,“唔,总算是弄好了,就是字体有点小,看着不太舒服”。当然是有解决办法的:

  • 找到你一般打开 xming 的快捷方式,右键属性
  • 在属性目标中添加 “-dpi 120” ,然后保存,重启试试,世界会变得更清晰
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第10张图片
    Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第11张图片

原来在虚拟机里面,别说300,运行200个events就有点卡了,现在在WSL子系统中非常的顺滑流畅。

最后也祝大家在学习Geant4上,一路顺风,多产出几篇SCI为中华科学之崛起而读书。

安装ROOT(参考官方文档)

# 安装依赖:
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}

就好了,非常简单
Geant4 及ROOT 在windows子系统(WSL)中的快速安装_第12张图片
当然,也可以将 “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 # 出现类似字符,就表示环境添加好了

ps

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的安装。

你可能感兴趣的:(Geant4,Geant4安装,windows子系统,ubuntu)