AlmaLinux (兼容centos)安装Geant4与ROOT

news2024/11/16 10:55:17

AlmaLinux 介绍

AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统,它填补了因 CentOS 稳定版本停止维护而留下的空白,同时更加强大。

安装 AlmaLinux

这个我用的是 windows 子系统进行安装

首先打开微软商店,然后搜索AlmaLinux,选择AlmaLinux9安装。

AlmaLinux安装

安装依赖软件包

Cmake 安装

这里 Cmake 我是直接安装的,并没有自己编译,直接安装的版本完全够用。

sudo dnf install cmake

expat 安装

sudo dnf install expat.x86_64

qt5core 安装

sudo dnf install qt5*-devel.x86_64

安装 X11、Xmu 和 Motif 库

sudo dnf install libX11-devel libXmu-devel motif-devel

XercesC 安装

XercesC搜索不到

XercesC 在 AmlaLinux 中并不可以直接安装(也可能是我没找到),这里通过源码进行编译安装。

  1. 去xerces-c 网站获取下载链接

获取下载链接

  1. 到终端使用命令wget download-link进行下载

  2. 使用命令解压tar -zxvf 文件名.tar.gz对文件进行解压

  3. cd 下载后的文件夹

  4. 执行./configure命令

  5. 执行make -j线程数,如make -j8

  6. 执行sudo make install

这样就是安装好了。

安装 Geant4

这里说一下,我一开始编译的是最新版的Geant4-11.1.2(截止到2023.10.10),但是报错,这里我就降低一个版本。

下载 Geant4 源码压缩文件与数据压缩文件

打开Old Geant4 releases

Geant4历史版本局部图片

可以看到,最新版的是11.1.2,所以我就下载11.1.1,这里对 11.1.1 进行点击,打开网页页面如下图,这里获取下载链接方法与XercesC安装获取下载链接方法相同,不再过多赘述。

然后就在终端进行wget下载。

注意:这里我把 Geant4 的源码压缩包与 dataset 文件在同一文件夹下

这里对于数据集的下载我是mkdir dataset一个文件夹,然后进入dataset文件夹中,对数据集文件进行wget,这里数据集的下载链接获取同上。

这里可以使用解压命令对Geant4的压缩文件进行解压。

看上图可以发现我也创建了一个data文件夹,这时候我把dataset里面的数据集压缩文件复制到data文件夹中,这里 dataset 文件夹是做备份用的,防止以后用。这里之所以创建一个data文件夹是因为后面编译好的Geant4还需要data文件夹存放数据集,这里我就直接创建,到时候复制就好了。

# 把dataset中的数据集压缩文件复制到data文件夹
cp -r /path/to/dataset/*tar.gz /path/to/data

# 批量解压tar.gz文件
for file in *.tar.gz; do tar -zxvf "$file"; done

# 批量删除tag.gz文件
rm -rf *tar.gz

编译 Geant4

注意都是在Geant-v11.1.1-build内操作

  1. cmake

当解压好 Geant4 压缩文件后,创建一个Geant-v11.1.1-build文件夹(可以根据自己的文件创建,甚至创建为 Geant4-build 都可以,没有要求),然后使用下面命令进行编译(cd到 Geant-v11.1.1-build 文件夹内进行执行)。

cmake -DCMAKE_INSTALL_PREFIX=/path/to/geant4-v11.1.1-build -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_XM=ON /path/to/geant4-v11.1.1
注意/path/togeant4-v11.1.1-build文件夹的父路径,需要自己替换/path/to/geant4-v11.1.1-build为源码文件夹,/path/to/geant4-v11.1.1-build为要安装的位置,这里pwd一下自己进行路径替换。如geant4-v11.1.1-build/home/admin/app下,那么path/to就是/home/admin/app,下面遇到的所有情况同理。

cmake成功示例

cmake成功后的示例,只要中间不爆红,不退出编译就行。

  1. make -j

再执行 make -j(j 为并行核数),如make -j8

成功示例(copy人家的)

  1. make install
    最后执行make install,就会将安装文件写入,指定的安装文件夹中。

  2. 将数据包 copy 到 Geant 中

cp -r /path/to/data /path/to/geant4-v11.1.1-build/share/Geant4

以上就编译好了

配置环境变量

  1. 执行vi ~/.bashrc命令,把下面内容添加到结尾。
# Geant4配置
export GEANT4=/path/to/geant4-v11.1.1-build
source $GEANT4/bin/geant4.sh
  1. 执行source ~/.bashrc命令

测试

进入存放例子的文件夹,复制一个例程。

我的存放路径是/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic/B1

这里我复制的是B1,其在/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic路径下。basic文件夹是基本的例程,有B1~B5的 5 个例程。

测试步骤:

  1. 进入复制的 B1 文件夹中
  2. 创建一个 build 文件夹并进入 build 文件夹:mkdir build && cd build
  3. 运行cmake ..命令

cmake成功示例

  1. 运行make -j

make -j成功示例

可以看到已经生成一个exampleB1文件。

  1. 运行./exampleB1命令

成功示例

ROOT 安装

命令:

sudo dnf install root python3-root

这里无法使用 jupyter,发现其依赖 gui,暂时不可用,但是可以在 python 上使用 ROOT,运行python3就可以import ROOT,对于在该系统下的 jupyter 使用 ROOT,后面解决了再出文章。

示例:

from ROOT import TH1D,TCanvas
# 创建一个叫c1的画布,标题为Histograms Exmple,画布宽600,高900
c1 = TCanvas("c1", "Histograms Exmple", 800, 600)
# 创建一个叫h1d1,标题为TH1D Exmple,把[-10,10]区间分为200个小区间的直方图
h1d1 = TH1D("h1d1", "TH1D Exmple", 200, -10, 10)
# FillRandom 用于高斯分布、泊松分布等填充。
h1d1.FillRandom("gaus", 10000)  # 使用gaus,并填充10000个数据
h1d1.Draw()

运行结果

个人感觉如果使用python来写root没有docker里面构建jupyter环境方便,而且在jupyter中可以写C++的ROOT代码。(需要Docker文件构建jupyter环境的私我)

直接使用 root 也是可以的。

直接使用root截图

END

好了,本期到此结束,我们下期再见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用MobaXterm连接服务器的全程配置

一、服务器上的操作 1.1 保证openssh的安装 openssh安装命令如下 apt-get update apt install openssh-server1.2 保证SSH服务没有在相应端口上侦听连接 1确保本地 SSH 服务正在运行 可以尝试使用以下命令检查 SSH 服务的状态(在大多数 Linux 系统上&#xff0…

信息系统项目管理师第四版学习笔记——项目立项管理

项目建议与立项申请 立项申请又称为项目建议书,是项目建设单位向上级主管部门提交项目申请时所必须的文件,项目建议书是项目发展周期的初始阶段,是国家或上级主管部门选择项目的依据,也是可行性研究的依据。 项目建议书应该包括…

Python生成ASCII艺术:将文字演绎成视觉盛宴

文章目录 介绍安装使用终端命令字体展示介绍 ASCII艺术也被称为“计算机文本艺术”,它涉及将特殊字符有智慧地放置于字母之间,以制作出分布在多行文本上的视觉形状。今天和大家分享一个Python库,它可以将文本转换为ASCII艺术,让文字看起来更花哨。 运用场景:我们可以将ASC…

【力扣每日一题】2023.10.10 移动机器人

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目比较复杂,我概括一下。给我们一个数组表示不同机器人在一维坐标轴上的初始位置,还有一个字符串表示每个机器人…

对于使用win32 API获取性能计数器的理解

微软提供了获取性能计数器的接口,如下 LSTATUS RegQueryValueExA([in] HKEY hKey,[in, optional] LPCSTR lpValueName,LPDWORD lpReserved,[out, optional] LPDWORD lpType,[out, optional] LPBYTE lpData,[in, out, optional] L…

『Linux - gcc / g++』c程序翻译过程

文章目录 前言预处理 -E编译 -S汇编 -c链接动静态链接 前言 在计算机中的每一个程序是由代码变化而来的,但是事实上来说,用 c/C 写出的代码是不能被计算机识别的,其中必须经过一系列的过程才能使这个代码能成功的被计算机识别; …

springboot篮球竞赛预约平台springboot033

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

微火资讯:共享WiFi贴如何盈利,现在到底还能做吗?

共享WiFi贴项目作为一项创新的网络服务模式,近年来在市场上崭露头角。然而,它是否能够长期发展和持续盈利,一直是人们关注的问题。那么,共享WiFi贴到底能不能做呢?让我们一起来探讨一下。 首先,共享WiFi的市…

黑马点评-07缓存击穿问题(热点key失效)及解决方案,互斥锁和设置逻辑过期时间

缓存击穿问题(热点key失效) 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且重建缓存业务较复杂的key突然失效了,此时无数的请求访问会在瞬间打到数据库,带来巨大的冲击 一件秒杀中的商品的key突然失效了,由于大家都在疯狂抢购那么这个瞬间就会有无数的请求…

KmeansR趋势分析

KmeansR趋势分析 library(KmeansR) df <- data.frame(A runif(2000),B runif(2000),C runif(2000)) KmeansR::KmeansR(df,centers 6,table FALSE)

【JavaEE初阶】 线程安全

文章目录 &#x1f334;线程安全的概念&#x1f333;观察线程不安全&#x1f384;线程不安全的原因&#x1f6a9;修改共享数据&#x1f4cc;原子性&#x1f4cc; 可见性&#x1f4cc;代码顺序性 &#x1f332;解决之前的线程不安全问题⭕总结 &#x1f334;线程安全的概念 线程…

关于ABB速度,加速度,轴监控指令

关于ABB速度&#xff0c;加速度&#xff0c;轴监控 关于轴监控指令要选择启用和关闭&#xff0c;这个指令是为了防止机器人在抓件放件过程中6轴来回旋转&#xff0c;已最佳的姿态运动 收录于合集 #ABB机器人 9个 上一篇关于ABB机器人的IO创建和设置

代码随想录Day15 二叉树 LeetCodeT513 找树左下角的值 T112路径总和 T106 从中序和后序遍历构造二叉树

以上思路来自于:代码随想录 (programmercarl.com) LeetCode T513 找树左下角的值 题目思路: 本题思路:这题我们使用递归法和迭代法解决问题 注意:左下角的值不一定就是一直向左遍历的叶子结点的值,首先可以确定是最后一行的第一个叶子结点的值,也就是最大深度的叶子结点的值 定…

flask入门

第一个Flask项目 创建后项目如下图 static存放静态文件&#xff0c;templates存放Jinja2模板&#xff0c;app.py是整个项目的入口文件 我们略微理解下app.py这里的代码 # 从flask这个包中导入Flask类 from flask import Flask#使用Flask类创建一个app对象 #__name__:代表当前…

Linux下kibana的安装与配置

1. 环境配置 确保Linux服务器上已安装Java 8或更高版本。可以通过运行 java -version 来验证Java的版本。 下载Kibana 7.17.11的压缩文件&#xff0c;可以从Kibana 7.17.11下载 上传服务器&#xff0c;并解压Kibana压缩文件。 2. Kibana配置 编辑Kibana的配置文件 config/k…

JS中使用递归的一次探索

什么是递归&#xff1a;递归的思想是把一个大型复杂问题层层转化为一个与原问题规模更小的问题&#xff0c;问题被拆解成子问题后&#xff0c;递归调用继续进行&#xff0c;直到子问题无需进一步递归就可以解决的地步为止。 说白话就是函数自己调自己。 再翻译白话&#xff1…

【Unity ShaderGraph】| 如何快速制作一个炫酷 模型裁剪效果 实战

前言 【Unity ShaderGraph】| 如何快速制作一个炫酷 模型裁剪效果 实战一、效果展示二、简易裁剪效果三、进阶裁剪效果四、应用实例 前言 本文将使用Unity 的ShaderGraph制作一个模型裁剪的效果&#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇…

练[CISCN2019 华东南赛区]Double Secret

[CISCN2019 华东南赛区]Double Secret 文章目录 [CISCN2019 华东南赛区]Double Secret掌握知识解题思路关键paylaod 掌握知识 ​ flask框架报错源码泄露&#xff0c;使用脚本进行RC4加解&#xff0c;ssti使用内置函数进行模板注入 解题思路 打开网站链接&#xff0c;页面就一…

【LeetCode75】第六十九题 或运算的最小翻转次数

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们 a&#xff0c;b&#xff0c;c 三个数&#xff0c;我们可以对 a 和 b 的二进制形态中的任何一位做翻转&#xff0c;问我们最少…

MobileViT v2导出onnx模型时遇Col2Im算子无法导出问题

相关error log索引 onnxruntime.capi.onnxruntime_pybind11_state.InvalidGraph: [ONNXRuntimeError] : 10 : INVALID_GRAPH : This is an invalid model. In Node, ("/classifier/classifier.0/ReduceMean", ReduceMean, "", -1) : ("/layer_5/laye…