在Ubuntu 20.04下安装 ROOT cern

在Ubuntu 20.04下安装 ROOT cern

    • 安装必要库
    • CMAKE编译
    • 设置启动终端时自动注入ROOT路径

在ROOT的安装过程中挣扎了很久,主要是根据README下的INSTALL安装时,总是出一些莫名其妙的问题,在爬过那么多坑后,决定总结出来,并提供一套成功概率较大的安装方法给安装新手(老手轻喷)

本方法使用Ubuntu 20.04, ROOT的版本为6.22.02

安装必要库

首先准备一个有相对纯净的环境的Ubuntu,然后安装required dependencies
来源:root.cern
注意,不同版本的Ubuntu对应的库的名字有细微区别,例如Ubuntu20中,如果直接复制下面的代码运行:

1
2
sudo apt-get install dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev \
 libxft-dev libxext-dev python openssl-dev

会报错:

1
E: 无法定位软件包 openssl-dev

只需要把命令的最后一个包的名字openssl-dev替换成openssl即可:

1
2
sudo apt-get install dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev \
 libxft-dev libxext-dev python openssl

这里就有一个坑:在Ubuntu16, 18, 20中,包的名字有略微的差别,目前我找到的规律就是:
后缀是-dev的包如果找不到,那就把-dev去掉试试

PS:图里的png和jpeg包是不用安装的

印象中git也是需要的,那就再

1
sudo apt-get install git

不然后面编译好像会报错

CMAKE编译

从官网把源码下下来,解压,然后新建一个 “rootbuild” 的文件夹,(根据README文件夹中的INSTALL的说明,建立一个与源码文件夹 “root_v6.22.02.source” 同级的文件夹较为方便,可以直接按照说明进行安装。

但是!前文也说了,它总是出一些奇奇怪怪的问题,在经历反复试错后,我发现大多数问题都可以通过在命令前面加 sudo 来解决,也就是(因为前面已经建立好了文件夹,因此只需要确保终端路径是rootbuild,即可直接进入第二步的3、4命令:

1
sudo cmake ../root_v6.22.02.source  #图中的root实际上是源码文件夹

不出意外的话,末尾会显示

1
2
3
-- Configuring done
-- Generating done
-- Build files have been written to: [rootbuild的路径]

如果出了意外,那就看看是不是缺了什么包,装上再重新cmake,其他问题我还没遇到过(一律建议重装……?)

编译完之后,运行:

1
sudo make -j8  #-j8的意思是使用8个处理器同时make,可以自行更改,但是别超出处理器数量了

设置启动终端时自动注入ROOT路径

前图的第三步

根据我的试错,实际上需要运行

1
source [rootbuild的路径]/bin/thisroot.sh  #并非.csh

来注入路径。此外,每次打开终端时,还都得输入一遍这个指令,比较繁琐。因此,可以把这个指令加到 ~/.bashrc 文件中,以达到每次打开终端时都自动注入路径的效果:

1
sudo gedit ~/.bashrc  #用文本编辑器打开~/.bashrc

在文本最后单独添加一行:

1
source [rootbuild的路径]/bin/thisroot.sh

保存退出即可。

可以在终端直接输入

1
root

来检验安装。同时也可以进入python,导入ROOT来检验pyroot的安装。

(部分方法可能与网上已有方法类似,侵删)