在Ubuntu 20.04下安装 ROOT cern
-
- 安装必要库
- CMAKE编译
- 设置启动终端时自动注入ROOT路径
在ROOT的安装过程中挣扎了很久,主要是根据README下的INSTALL安装时,总是出一些莫名其妙的问题,在爬过那么多坑后,决定总结出来,并提供一套成功概率较大的安装方法给安装新手(老手轻喷)
本方法使用Ubuntu 20.04, ROOT的版本为6.22.02
安装必要库
首先准备一个有相对纯净的环境的Ubuntu,然后安装required dependencies
注意,不同版本的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的安装。
(部分方法可能与网上已有方法类似,侵删)