Ubuntu 18.04下安装Geant4@CERN

Ubuntu 18.04下安装Geant4@CERN

!Warning
本文最后更新时间:2019年7月
ROOT安装走这里

运行平台Ubuntu 18.04,Mac以及其他版本的Linux视情况修改自己的命令行。

安装版本是10.05.p01,其他版本视情况编,应该都差不多。

make的过程中可能有一些warning,不报错就没事。

好开始。

准备工作

一些必要安装的包:

$ sudo apt install cmake git dpkg-dev libdpkg-dev libx11-dev \
libxpm-dev libxft-dev libxext-dev libjpeg-dev python-dev \
gfortran libssl-dev libpcre3-dev libglu1-mesa-dev libglew-dev \
libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev:i386 \
libcfitsio-dev libgraphviz-dev libavahi-compat-libdnssd-dev \
libdap-dev libxml2-dev libgsl0-dev libqt4-dev libpnglite-dev \
libafterimage-dev libgmp-dev libpq-dev libsqlite3-dev \
libiodbc2-dev libdpm-dev libavahi-core-dev

另外G4还需要一些图形上的工作用的包,X11套件什么的,总之额外需要安装:

$ sudo apt install libxerces-c-dev libmotif-dev libglw1-mesa-dev inventor-dev opticalraytracer libpythia8-dev pythia8-doc-html pythia8-doc-worksheet pythia8-examples emacs colordiff lftp dkms build-essential libzlcore-dev libxmu-dev fastjet-doc fastjet-examples libfastjet-fortran-dev libfastjetplugins-dev libfastjettools-dev libfastjet-fortran0 libfastjetplugins0 libfastjettools0 vim vim-doc vim-scripts 

这里还混进去了vim(和其他奇奇怪怪的东西)……当然vim并不是必须,就是反正之后也要用到的迟早都得装上去,无所谓了,不想这会儿装就删掉后面vim那几个。

Geant4的官方下载页面上把Source filesData files下载下来,注意Data files数一数多少个,10.05.p01对应的有12个,比以往的10.04版本多了一个。

下载下来以后tar -xvf <filename>解压,所有的Data files放到一个目录(path/to/geant4-data)里头去,然后在这个目录下执行:

$ for i in `ls *.gz` ; do tar -xvf $i ; done

就可以啦。

编译安装

之后就是编译安装的步骤,这里涉及到四个文件夹(比ROOT6的那个多了一个):

  • path/to/geant4-source:源码目录,就是你下的源码包解压开来以后的文件夹,里面大概有bindingsbuilddocCMakeLists.txt啊之类的文件,文件夹名字大概是类似于geant4.10.05.p01这样的名称;
  • path/to/geant4-data:Data files目录,就上一步把所有Data Files解压出来的那个目录;
  • path/to/geant4-build:编译目录,现阶段是空的——自己mkdir <folder name>建一个;
  • path/to/geant4-install:安装目录,现阶段是空的,自己建一个。

四个文件夹最好是平行关系,不要有嵌套。

执行:

$ cd path/to/geant4-build
$ cmake -DCMAKE_INSTALL_PREFIX=path/to/geant4-install -DGEANT4_INSTALL_DATADIR=path/to/geant4-data -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_XM=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_SYSTEM_ZLIB=ON -DGEANT4_USE_INVENTOR=OFF path/to/geant4-source

解释一下:

  • DCMAKE_INSTALL_PREFIX:就是安装目录;
  • DGEANT4_INSTALL_DATADIR:Data files的目录,如果是照官方手册装的话其实有一个选项可以在联网状态下自动安装Data files,开启了那个应该不填也没事……
  • DGEANT4_USE_GDMLDGEANT4_USE_QTDGEANT4_USE_XMDGEANT4_USE_OPENGL_X11等等:启用GDML、QT、XM、OPENGL_X11、RAYTRACER_X11、ZLIB;
  • DGEANT4_USE_INVENTOR:禁用INVENTOR。

这个时候你的path/to/geant4-build文件夹里应该开始生成东西(makefile)了……如果报错,可能是前一步有包没装,回去再看看;也可能是官网下的源码包有东西不齐(大概应该也许不会)。

$ make -jN

N是你的计算机核心数,我是惨兮兮的双核,所以是make -j2

完成以后执行:

$ make install

环境配置

然后就是收尾啦,环境配置。

$ gedit ~/.bashrc

然后在.bashrc里加两行:

source path/to/geant4-install/bin/geant4.sh
source path/to/geant4-install/share/Geant4-10.5.1/geant4make/geant4make.sh

保存,退出,再执行

$ source ~/.bashrc

运行实例

path/to/root-install/share/Geant4-10.5.1下有一个examples文件夹,里头有一些自带的实例,可以测试一下G4能不能跑起来。

$ cd path/to/geant4-install/share/Geant4-10.5.1/examples/basic/
$ cp -r B1/ test/
$ cd test/
$ mkdir build
$ cd build
$ cmake ../
$ make -jN

make出来大概这样:

Scanning dependencies of target exampleB1
[ 12%] Building CXX object CMakeFiles/exampleB1.dir/exampleB1.cc.o
[ 25%] Building CXX object CMakeFiles/exampleB1.dir/src/B1ActionInitialization.cc.o
[ 37%] Building CXX object CMakeFiles/exampleB1.dir/src/B1DetectorConstruction.cc.o
[ 50%] Building CXX object CMakeFiles/exampleB1.dir/src/B1EventAction.cc.o
[ 62%] Building CXX object CMakeFiles/exampleB1.dir/src/B1PrimaryGeneratorAction.cc.o
[ 75%] Building CXX object CMakeFiles/exampleB1.dir/src/B1RunAction.cc.o
[ 87%] Building CXX object CMakeFiles/exampleB1.dir/src/B1SteppingAction.cc.o
[100%] Linking CXX executable exampleB1
[100%] Built target exampleB1

最后运行编译好的文件:

$ ./exampleB1

看到下图就说明安装已经顺利完成啦:

B1运行后演示
B1运行后演示

- End -
理工
花式折腾 来点干货 Geant4
1,032字 2,007次阅读
Comments
Write a Comment
  • 加藤惠 reply

    感谢!找遍全网,终于按照您这篇教程安装上了。感觉其他的教程各种问题,就您这篇环境变量设置的对~

    • @加藤惠 大部分都少source了一个.sh文件吧23333我也是在这上头转了好几圈,问了师兄才发现要再加一个的

  • 872740305 reply

    path/to/root-install?不是path/to/geant4-install么?

    • @872740305 抄的上一个文档,忘记改了,知道意思就行【……】

  • Anonymous reply

    Thank you very much, little sis

  • Anonymous reply

    感谢小姐姐!不过我在运行./exampleB1的时候,提示段错误,核心已转储,不知道您知道原因吗

    • @Anonymous 遇到过,印象里是gcc版本的问题,降到手册里对应的最低版本gcc和g++应该就可以了

    • April reply

      @Anonymous 我也遇到了同样的问题,设置了gcc和 g++版本后也没用,请问您解决了吗?

  • GAKKI reply

    又见面了,记得你安装root时说过不会跳G4坑(滑稽)

    • @GAKKI 要开始做模拟了啊(。)当年又不用做模拟

  • Sodamide reply

    非常感谢,折腾了好几天,按您的方法安装成功了。

    • @Sodamide 看来各所又到了学生们暑假提前过来实习的日子了【x

  • edgar reply

    您好!请问能帮一下忙吗?我最开始那8个必要的包,第4、6、8个都装不上,其他都装的上。第4个包报错:“E: Unable to locate package libcfitsio-dev:i386”,第6个包报错:“E: Package 'libqt4-dev' has no installation candidate”,第8个包报错:“E: Unable to locate package libdpm-dev”。请问您有空的话,能帮我看一下吗?非常感谢!

    • @edgar 如果Ubuntu版本没有错的话那应该就是这些包升级了原来的包已废弃,去找一下对应的升级以后的包叫什么名字install就好

      • edgar reply

        @古川政良 非常感谢!我之前用的是20版本的ubuntu,所以一直出错。后来换成了18,一下就好了。非常感谢!