ROOT 的安装 王思广 北京大学物理学院 siguang@pku.edu.cn 北京大学 ROOT 数据处理暑期学校,2016 年 8 月 19-23 日
报告内容 ROOT 介绍 ROOT 安装 运行检查 2016/8/20 siguang@pku.edu.cn 2
ROOT 自由软件网页 https://root.cern.ch/ 2016/8/20 siguang@pku.edu.cn 3
ROOT V5 2016/8/20 siguang@pku.edu.cn 4
ROOT V5 2016/8/20 siguang@pku.edu.cn 5
Project Statistics http://root.cern.ch/drupal/content/project-statistics 2014 年统计的, 后来就没找到类似网页 2016/8/20 siguang@pku.edu.cn 6
各国下载量 对数怎么读? 2016.5.28 有效 https://root.cern.ch/drupal/content/download-statistics 2016/8/20 siguang@pku.edu.cn 7
Root 的安装 2016/8/20 siguang@pku.edu.cn 8
在 Windows 下安装虚拟机方法 1) 先安装 VirtualBox https://virtualbox.org/ 2) 导入安装好的文件或自己安装 Linux 系统然后安装 root 2016/8/20 siguang@pku.edu.cn 9
王思广所提供的虚拟机安装方式 所提供的虚拟机为 Debian, 安装在 64 位 VirtualBox 版本 : VirtualBox-4.3.12-93733-Win ( 其它版本的 VirtualBox 发现无法使用 ) 第一步 : 下载地址 :http://www.phy.pku.edu.cn/~wangsg/rootschool/vmvirtualbox_debian_root_g4.rar 下载压缩文件并解压, 找到 VirtualBox-4.3.12-93733-Win.exe 并安装 ; 第二步 : 在 管理 下拉菜单 导入虚拟电脑 弹出的选择框内选择 DebianROOT534_604Geant4_96_10.ova 第三步 : 按 设置 后进行 共享文件夹 设置,Window 与虚拟机之间可以通过共享文件夹进行数据交换第四步 : 启动, 对于 wsg 用户和超级 root 用户, 密码都是 testroot 该虚拟机包含 : ROOT5.34 ROOT6.04 2016/8/20 siguang@pku.edu.cn Geant4.96 Geant4.10 10
Configure 安装方法 :ROOT 含 fftw Pythia6 及 Pythia8 扩展包 #!/bin/bash export PYTHIA6=/home/wsg/work/pythia6/pythia6428 export PYTHIA8=/home/wsg/work/pythia8/8186 export PYTHIA8DATA=/home/wsg/work/pythia8/8186/xmldoc export PYTHONDIR=/usr export PATH=$PYTHONDIR/bin:$PATH 安装前要进行 PYTHIA fftw 的包的安装 export LD_LIBRARY_PATH=$PYTHONDIR/lib:$PYTHIA6:$PYTHIA8/lib:$LD_LIBRARY_PATH export PYTHONPATH=$PYTHONDIR/lib:$PYTHONPATH./configure --prefix=/home/wsg/work/root/534 --fail-on-missing --enable-pythia8 --with-pythia8- incdir=$pythia8/include --with-pythia8-libdir=$pythia8/lib --enable-pythia6 --with-pythia6- libdir=$pythia6 --enable-fftw3 --with-fftw3-incdir=/usr/include --with-fftw3-libdir=/usr/lib --enablepython --with-python-incdir=/usr/include/python2.7 --with-python-libdir=/usr/lib --enable-tmva -- enable-qt --enable-unuran --enable-qtgsi --enable-minuit2 --enable-roofit --enable-gdml --enablereflex --enable-cxx11 --enable-cocoa make -j2 2016/8/20 siguang@pku.edu.cn 11
FFTW 的安装 方法 1:Debian, Ubuntu 等系统源自带的安装方法 ( 发现这种方法更安全稳定, 推荐!): apt-get install libfftw3-dev 方法 2: 下载 FFTW 源代码 ( 网站见下页 ), 解压后查看安装说明 emacs INSTALL 看看安装方法 mkdir fftw 安装目录随便建立 : /home/wsg/work/fftw./configure - -prefix=/home/wsg/work/fftw prefix 前是两个减号 make j2 make install 2016/8/20 siguang@pku.edu.cn 12
http://www.fftw.org/download.html 如果需要 RooFit 的快速傅里叶卷积拟合, 需要在编译安装 root 前安装 FFTW 2016/8/20 siguang@pku.edu.cn 13
PYTHIA6.4.28 和 8186 安装方法 http://home.thep.lu.se/~torbjorn/pythia.html wget https://root.cern.ch/download/pythia6.tar.gz tar zxvf pythia6.tar.gz rm -rf pythia6.tar.gz wget http://www.hepforge.org/archive/pythia6/pythia- 6.4.28.f.gz gzip -d pythia-6.4.28.f.gz mv pythia-6.4.28.f pythia6/pythia6428.f rm -rf pythia6/pythia6416.f mv pythia6 pythia6428 cd pythia6428./makepythia6.linuxx8664 cd.. 建立环境变量设置脚本 cat >setuppythiaroot #!/bin/sh export PYTHIA6=$PWD/pythia6428 export PYTHIA8=$PWD/pythia8186 export PYTHIA8DATA=$PWD/pythia8186/xmldoc source setuppythiaroot wget http://home.thep.lu.se/~torbjorn/pythia8/pythia8186.t gz tar zxvf pythia8186.tgz rm -rf pythia8186.tgz cd pythia8186./configure --enable-shared --enable-64bit make -j 4 2016/8/20 cd.. siguang@pku.edu.cn 14
更新系统 : sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 安装过程中可能遇到困难怎么办? 如果还出现问题, 仔细看错误提示, 安装相应的软件包 如果安装 ROOT6, 需要 gcc4.8 的版本,Debian 下更新 gcc 的方法 : sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo cp /etc/apt/sources.list /etc/apt/sources.list.wheezy 备份 emacs /etc/apt/sources.list 编辑, 替换所有的 wheezy 为 jessie sudo apt-get update 更新源 sudo apt-get install gcc-4.9 g++-4.9 安装 sudo cp /etc/apt/sources.list.wheezy /etc/apt/sources.list sudo apt-get update 2016/8/20 siguang@pku.edu.cn 15
ROOT 需要的包 根据 https://root.cern.ch/drupal/content/build-prerequisites 需要如下的包 : sudo apt-get install git dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev Optional packages: sudo apt-get install gfortran libssl-dev libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev cfitsio-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev libqt4-dev 如果有 ROOT 权限, 执行以上命令即可 不同操作系统所需要的包见该网页 2016/8/20 siguang@pku.edu.cn 16
apt-get 命令 apt-get 近乎是最常用的 shell 命令之一了, 常用的 APT 命令参数 : apt-cache search package 搜索软件包 apt-cache show package 获取包的相关信息, 如说明 大小 版本等 sudo apt-get install package 安装包 sudo apt-get install package --reinstall 重新安装包 sudo apt-get -f install 修复安装 sudo apt-get remove package 删除包 sudo apt-get remove package --purge 删除包, 包括配置文件等 sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 apt-cache depends package 了解使用该包依赖那些包 apt-cache rdepends package 查看该包被哪些包依赖 sudo apt-get build-dep package 安装相关的编译环境 apt-get source package 下载该包的源代码 sudo apt-get clean && sudo apt-get autoclean 清理无用的包 sudo apt-get check 检查是否有损坏的依赖 将 gv 安装 : apt-get install gv 2016/8/20 siguang@pku.edu.cn 17
也可安装操作系统源的 root 快速安装 : 在联网的状态下, 在 Ubuntu Debian 操作系统下执行 apt-get install root-system 即可 tutorials test 目录会被安装在 : /usr/share/doc/root/tutorials 和 /usr/share/doc/root/test 2016/8/20 siguang@pku.edu.cn 18
前期准备 : cmake; Linux 下通过 cmake 编译源代码安装 下载 root 源代码解压缩到 root 目录下 mkdir -p tmprootcompile cd tmprootcompile cmake../root-6.04.16 -DCMAKE_INSTALL_PREFIX=/home/wsg/work/root/604 -Dall=on -Dfail-on-missing=OFF make -j2 make install root 是源代码解压后的目录 /home/wsg/work/root/604 是要安装后的目录 -Dall=on 打开所有选项 -Dfail-on-missing=OFF 如果没有找到需要的外挂库, 继续执行其余安装详细见 :https://root.cern.ch/installing-root-source 2016/8/20 siguang@pku.edu.cn 19
Linux 下通过 cmake 编译源代码安装 root5 #!/bin/bash 安装脚本 : #pre install FFTW with apt-get install libfftw3-dev #more: https://root.cern.ch/installing-root-source export PYTHIA6=/home/wsg/work/pythia6/pythia6428 export PYTHIA8=/home/wsg/work/pythia8/8186 export PYTHIA8DATA=/home/wsg/work/pythia8/8186/xmldoc export PYTHONDIR=/usr export PYTHONPATH=$PYTHONDIR/lib export PATH=$PYTHONDIR/bin:$PATH Root534 下只能安装 pythia8.1* Root6 下可以安装 pythia8.2* 设置 pythia8* 环境的时候 :./configure --enable-shared --enable-64bit --prefix=.. export LD_LIBRARY_PATH=$PYTHONDIR/lib:$PYTHIA6:$PYTHIA8/lib:$PYTHONDIR/lib:$LD_LIBRARY_PATH mkdir -p tmprootcompile cd tmprootcompile 2016/8/20 siguang@pku.edu.cn 20
cmake../root cmake 安装细节 -DCMAKE_INSTALL_PREFIX=/home/wsg/work/root/534 -DPYTHIA6_LIBRARY=/home/wsg/work/pythia6/pythia6428/libPythia6.so -Dpythia6=ON -DPYTHIA8_DIR=/home/wsg/work/pythia8/8186 -DPYTHIA8_INCLUDE_DIR=/home/wsg/work/pythia8/8186/include -DPYTHIA8_LIBRARY=/home/wsg/work/pythia8/8186/lib/libpythia8.so -Dpythia8=on -DPYTHON_EXECUTABLE=/usr/bin -DPYTHON_INCLUDE_DIR=/usr/include/python2.7 -DPYTHON_INCLUDE_DIR2=/usr/include/python2.7 -DPYTHON_LIBRARY=/usr/lib/python2.7/config/libpython2.7.so -Dall=on -Droofit=on -Dfftw3=on -Dpython=on -Droottest=on -Druby=on -Dtmva=on -Dtestring=on -Dxml=on - Dx11=on -Dqt=on -Dmt=on -Dxrootd=on -Dtcmalloc=on -Dfail-on-missing=OFF make j2 make install root 是源代码解压后的目录 /home/wsg/work/root/534 是要安装后的目录 -Dall=on 打开所有选项 -Dfail-on-missing=OFF 如果没有找到需要的外挂库, 继续执行其余安装详细见 :https://root.cern.ch/installing-root-source 2016/8/20 siguang@pku.edu.cn 21
检查运行环境 : echo $0 如果返回 bash wsg@debian:~$ cd wsg@debian:~$ emacs.bashrc & 在文件中加入 : export PYTHONPATH=/usr/lib/python2.7 为了使得 pyroot 可用 export ROOTSYS=/home/wsg/work/root/534 export PATH=$ROOTSYS/bin:$PATH export LD_LIBRARY_PATH=$ROOTSYS/lib:$LD_LIBRARY_PATH 设置环境 如果返回 -tcsh wsg@debian:~$ cd wsg@debian:~$ emacs.tcshrc & 在文件中加入 : setenv PYTHONPATH /usr/lib/python2.7 为了使得 pyroot 可用 setenv ROOTSYS /home/wsg/work/root/534 setenv PATH $ROOTSYS/bin:$PATH setenv LD_LIBRARY_PATH $ROOTSYS/lib:$LD_LIBRARY_PATH 重新开窗口即可输入 root 2016/8/20 siguang@pku.edu.cn 22
Suggestion If configure method can not work, try the cmake (following is ok on node14 of testroot@hepfarm02.pku.edu.cn). #!/bin/bash export ROOTSYS=/home/testroot/testroot/bit64/root534 export FFTW3=/home/testroot/testroot/bit64/fftw mkdir -p tmprootcompile cd tmprootcompile #following is ok /home/testroot/testroot/bit64/cmake/bin/cmake -DCMAKE_INSTALL_PREFIX=/home/testroot/testroot/bit64/root534../root -Dall=on -Droofit=on -Dfftw3=on -Dpython=on -Droottest=on -Druby=on -Dtmva=on -Dtestring=on -Dxml=on -Dx11=on -Dqt=on -Dmt=on -Dxrootd=on -Dtcmalloc=on -Dfail-onmissing=OFF make -j64 make install cd - 2016/8/20 siguang@pku.edu.cn 23
运行检查 2016/8/20 siguang@pku.edu.cn 24
安装后的运行测试 : $ROOTSYS/tutorials/ 在 $ROOTSYS/tutorials/ 下有很多例子程序, 运行方法为 : $cd $ROOTSYS/tutorials/roofit $root rf208_convolution.c 看能否出现左图 如果能, 说明你的 root roofit 软件包 fftw 软件安装成功 2016/8/20 siguang@pku.edu.cn 25
红色为您输入的文字 编译运行方法 wsg@debian:~/work/root/534/tutorials/roofit$ root root [0].L rf208_convolution.c++ Info in <TUnixSystem::ACLiC>: creating shared library /home/wsg/work/root/534/tutorials/roofit/./rf208_convolution_c.so RooFit v3.60 -- Developed by Wouter Verkerke and David Kirkby Copyright (C) 2000-2013 NIKHEF, University of California & Stanford University All rights reserved, please read http://roofit.sourceforge.net/license.txt root [1] rf208_convolution() 2016/8/20 siguang@pku.edu.cn 26