在Ubuntu 20.04下安装 ROOT cern

  • Step1 安装必要库
  • Step2 安装ROOT本身
    • 方法1:下载预编译软件包安装(Bianary Distributions)
    • 方法2:CMAKE编译安装
  • Step3 设置启动终端时自动注入ROOT路径
  • 懒人快速安装教程
    • 安装必备包
    • 下载预编译包(Binary Distribution)并解压
    • 设置自动添加路径

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

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

Step1 安装必要库

首先准备一个有相对纯净的环境的Ubuntu,然后安装required dependencies

注意,不同版本的Ubuntu对应的库的名字有细微区别,例如Ubuntu20中,如果直接复制下面的代码运行:

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

会报错:

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

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

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去掉试试
此外,国内的apt镜像源可能存在问题,这可能会影响update upgrade指令而导致安装失败
PS:图里的png和jpeg包是不用安装的

除了图里所列的库,还需要安装git、python对应版本的-dev和-numpy(ubuntu20以外的版本不确定是否需要),缺失git会导致cmake无法进行,缺失python的-dev和-numpy会导致pyroot无法安装,但是不会报错,也就是后面的步骤都能进行,但就是没有pyroot!

sudo apt-get install git python2-dev python3-dev python2-numpy python3-numpy
# 引用 [https://root-forum.cern.ch/t/thank-you-for-fixing-pyroot-compatibility/40220](https://root-forum.cern.ch/t/thank-you-for-fixing-pyroot-compatibility/40220)

Step2 安装ROOT本身

ROOT本身只是一堆文件,不存在类似于Windows下某些软件安装时非要望C盘里塞点什么东西的情况。也就是说,只要两台电脑拥有一模一样的系统和环境,那么ROOT可以直接Copy过去使用(当然Windows下的一些软件也是可以这样的,给Windows留点面子)。
目前我实操过的方法有以下两种:

  • 下载预编译软件包安装:这种方式方便快捷,但适用性有限(不过也涵盖了一般的个人用户了,力荐)
  • 自行CMAKE编译安装:这种方式针对第一种方式没有涵盖到的系统进行安装,比较费时间,而且可能会出错

方法1:下载预编译软件包安装(Bianary Distributions)

一般而言,如果是新安装的纯净系统,其附带的环境是相同的。举个栗子,Ubuntu20.04系统自带Python的版本为3.8.5,gcc版本为9.3。于是,只要自己没有主动更改相关软件的版本或其他设置,那么我们只需要从官网上下载在同一环境下编译好的软件直接使用即可。

说人话版:新系统,安装完依赖环境之后啥也别干,从官网上下对应版本的预编译软件包,解压使用即可。


找个文件夹将下载好的软件包解压即可

方法2:CMAKE编译安装

如果预编译软件包中没有自己需要的版本,那么可以从官网把源码下下来,解压,然后新建一个 “rootbuild” 的文件夹,(根据README文件夹中的INSTALL的说明,建立一个与源码文件夹 “root_v6.22.02” 同级的文件夹较为方便,可以直接按照说明进行安装。

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

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

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

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

如果出了意外,那就看看是不是缺了什么包,装上再重新cmake(例如前文所说的python包,可以在这一步的输出内容中找到 “cannot found python2” 的相关内容)

编译完之后,运行:

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

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

前图的第三步

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

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

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

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

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

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

保存退出即可。

重启终端后,可以在终端直接输入

root

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

PS:经过我的测试,Ubuntu下的vscode在添加上述代码后可以直接运行root,而pycharm则需要在启动脚本的合适位置添加source [rootbuild的路径]/bin/thisroot.sh,而且每次pycharm更新后都得重新添加。(不过因为对pycharm了解有限,不知道有没有别的方法了)个人猜测跟软件调用终端的方式有关。

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


懒人快速安装教程

只针对ubuntu20.04,其他版本可以作参考

安装必备包

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

根据需要安装python所需包(用于pyroot的安装)

sudo apt-get install python2 python2-dev python2-numpy
sudo apt-get install python3 python3-dev python3-numpy
# 安装哪个版本,哪个版本的pyroot就会被编译,两个版本可以并存

注意:国内的apt镜像源可能存在问题,例如我发现的一个有问题的源是阿里的,这可能会影响update upgrade指令而导致安装失败

下载预编译包(Binary Distribution)并解压

将下载好软件包解压至<你的路径>/root-6.22.02(名字任意,这个文件夹名是因为我解压出来默认是这个名字)

设置自动添加路径

root自带添加路径脚本,只要在终端启动时自动运行一遍即可:

sudo gedit ~/.bashrc    # 使用文本编辑器编辑.bashrc,也可以将gedit改成vi等

在文本末尾新建一行,写入

source <你的路径>/root-6.22.02/bin/thisroot.sh    # 替换成对应的安装路径

保存,退出,完成。

在Ubuntu 20.04下安装 ROOT cern相关推荐

  1. linux :YOLO5配置(ubuntu 20.04 下安装运行yolov5)

    ubuntu 20.04 下安装运行yolov5 新建文件夹,安装python 安装 python-pip: 克隆YOLOv5Git code 配置YOLO环境 安装yolov5: ubuntu 20 ...

  2. ubuntu 20.04 下安装使用clash for windows

    ubuntu 20.04 下安装使用clash for windows (最简单版本) - jjjzzzqqq - 博客园

  3. ccpd文件名转成xml_在Deepin V20/Ubuntu 20.04下安装佳能LBP2900+打印机的方法

    本文为你介绍在Deepin V20系统下安装佳能LBP2900+打印机的方法,同样的方法也适用在Ubuntu 20.04下,但在Ubuntu下需要安装canberra-gtk-module. 在Dee ...

  4. ubuntu 20.04 下安装easyconnect记录

    最近需要在linux下连接公司内网,试了下主要有一下两个问题: 1.easyconnect在ubuntu20下无法打开: 2.在解决第一个问题后在easyconnect登陆过程中闪退. 解决方案主要参 ...

  5. Ubuntu 20.04 下安装 OpenCV 3.4.11 并测试使用

    目录 0 操作环境 1 什么是 Opencv 2 安装 Opencv 2.1 下载 Opencv 2.2 Opencv 的配置环境 3 Opencv 对图片进行处理 3.1 代码文件创建 3.2 编译 ...

  6. Ubuntu 20.04上安装Git方法

    Git是世界上最受欢迎的分布式版本控制系统,被许多开源和商业项目使用.它使您可以与其他开发人员在项目上进行协作,跟踪代码更改,还原到上一阶段,创建分支等. Git最初是由Linux内核的创建者Linu ...

  7. ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban

    暴露给Internet的任何服务都有遭受恶意软件攻击的风险. 例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户. Fail2ban是一种工具,可通过监视服务日志中的恶 ...

  8. ubuntu19 安装git_如何在Ubuntu 20.04上安装Git

    Git是世界上最受欢迎的分布式版本控制系统,被许多开源和商业项目使用.它使您可以与其他开发人员在项目上进行协作,跟踪代码更改,还原到上一阶段,创建分支等. Git最初是由Linux内核的创建者Linu ...

  9. ubuntu linux安装控制面板,在Ubuntu 20.04上安装Ajenti控制面板的方法

    本文介绍在Ubuntu 20.04服务器上安装Ajenti控制面板的方法,下面介绍的安装方法最大的好处是它完全自动化的. 一.更新Ubuntu 20.04系统 确保您正在全新安装Ubuntu 20.0 ...

最新文章

  1. es分词器错误分析_了解ElasticSearch分析器
  2. 练习题 James and Dominoes
  3. Tomcat提示:Error starting static Resources......
  4. Java之多线程里面的锁理解以及synchronized与Lock的区别
  5. java 左移 返回值_java左移右移运算符详解
  6. 初一级模拟试题总结(2019.3.2)
  7. POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )
  8. python写tcp通信程序_一个简单的基于TCP通信的服务器端与客户端程序
  9. 华为ap配置_13、了解下POE交换机以及AP供电几种方式
  10. iOS UICollectionView的简单使用和常用代理方法
  11. Csharp四种简单的排序算法
  12. data.unity3d 文件过大解决方法
  13. 热门小说排行榜(JSP实现)
  14. 【BZOJ3717】[PA2014]Pakowanie 状压DP
  15. 安装极狐GitLab(ubuntu)----写给不爱看官方文档的人
  16. 自考2018版《管理经济学》第一章导论——思维导图
  17. matlab中TCR触发,TCR+FC型SVC及MATLAB仿真.doc
  18. PHP微信公众号文章爬虫
  19. 2021-10-13爬虫requests总结
  20. 总结:Spring boot熔断

热门文章

  1. 《达·芬奇密码》解读解密 1
  2. win10计算机重新启动,解决方法:为什么win10计算机在关闭后会自动重新启动
  3. 关于两种单菌种发酵的豆瓣酱代谢组学方面差异研究
  4. 全球首款车联网智能儿童安全座椅,究竟是怎样炼成的?
  5. 南方持续强降雪 京广高铁部分列车晚点1到3小时
  6. TDR 最小测量长度实验
  7. 迟到20年的中国格斗机器人综艺,能否成为产业起点?
  8. 通过虚拟机openwrt上网_vmware 12中安装 OpenWRT 及 网络配置
  9. vue的[__ob__: Observer]
  10. 白鹭引擎之Scroller容器