在openEuler环境下快速编译GreatSQL RPM包
在上一篇中,已经介绍了在CentOS环境下编译GreatSQL RPM包的过程,本文再介绍如何在openEuler环境下编译GreatSQL RPM包。
运行环境是docker中的openEuler 22.03 x86_64:
$ docker -v
Docker version 20.10.10, build b485636$ docker run -itd --hostname oe --name oe openeuler/openeuler bash
1d2839ec30c28c7b20bbd6f469964b0b68ddf6485a0c4136b030c14812f8dec3$ docker exec -it oe bash
1、准备工作
1.1、配置yum源
用默认的yum源即可,无需额外添加。
1.2、安装编译所需要的软件包
安装 rmp-build
包,它会附带安装其他必要的相关依赖包,并同步安装其他必要的软件包,如cmake、gcc等:
[root@oe /]# dnf install -y automake bison bison-devel bzip2 bzip2-devel clang cmake cmake3 diffutils expat-devel file flex \
gcc gcc-c++ gcc-toolset-12-cpp gcc-toolset-12-gcc graphviz jemalloc jemalloc-devel libaio-devel \
libarchive libcurl-devel libevent-devel libffi-devel libicu-devel libssh libtirpc libtirpc-devel \
libtool libxml2-devel libzstd libzstd-devel lz4-devel lz4-static make ncurses-devel ncurses-libs \
net-tools numactl numactl-devel numactl-libs openldap-clients openldap-devel openssl openssl-devel \
pam pam-devel perl perl-Env perl-JSON perl-Memoize perl-Time-HiRes pkg-config psmisc re2-devel \
readline-devel rpcgen rpm-build rpm-build snappy-devel tar time unzip vim wget zlib-devel
1.3 创建构建RPM包所需的目录
创建相应的目录
[root@oe /]# mkdir -p /root/rpmbuild/SOURCES
1.4 下载GreatSQL源码包
戳此链接 https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0.32-25,找到 greatsql-8.0.32-25.tar.xz
下载GreatSQL源码包,放在上面创建的 /root/rpmbuild/SOURCES
目录下,并解压缩。
1.5 下载greatsql.spec文件
戳此链接 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/build-gs/greatsql.spec,下载 greatsql.spec
文件,放在上面创建的 /root/rpmbuild/
目录下。
1.6 下载boost源码包
编译GreatSQL 8.0.32-25版本需要配套的boost版本是1.77,戳此链接下载 https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz,放在上面创建的 /root/rpmbuild/SOURCES
目录下。
2、开始准备编译GreatSQL RPM包
从GreatSQL源码包中拷贝几个必要的文件
[root@oe /]# cd /root/rpmbuild/SOURCES/greatsql-8.0.32-25/build-gs/rpm
[root@oe rpm]# cp filter-*sh mysqld.cnf mysql-5.7-sharedlib-rename.patch mysql.init mysql_config.sh /root/rpmbuild/SOURCES/
在gitee上的 greatsql.spec
文件我已更新,无需再修改内容,除非你自己有需要调整。
直接开始尝试编译RPM包
[root@oe rpm]# cd /root/rpmbuild
[root@oe rpmbuild]# time rpmbuild --define 'dist .oe20' --define "_topdir /root/rpmbuild/" -bb ./greatsql.spec > rpmbuild.log 2>&1
在已经安装完上述必要的软件包、依赖包之后,正常应该能顺利完成RPM包编译了。
最后,查看编译结果,会有类似下面的日志:
[root@oe rpmbuild]# tail rpmbuild.log
Wrote: /root/rpmbuild/RPMS/x86_64/greatsql-test-8.0.32-25.1.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/greatsql-debuginfo-8.0.32-25.1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.tQ4Ggn
+ umask 022
+ cd /root/rpmbuild//BUILD
+ cd greatsql-8.0.32-25
+ /usr/bin/rm -rf /root/rpmbuild/BUILDROOT/greatsql-8.0.32-25.1.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
再看下编译生成的RPM文件包:
[root@oe rpmbuild]# du -sch *
43G BUILD
0 BUILDROOT
64K greatsql.spec
36M rpmbuild.log
492M RPMS
472M SOURCES
472M SRPMS
45G total[root@oe rpmbuild]# cd /root/rpmbuild/RPMS/x86_64
[root@oe x86_64]# ls -la
total 503312
-rw-r--r-- 1 root root 18774049 Jan 5 07:35 greatsql-client-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 1926953 Jan 5 07:35 greatsql-devel-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 2145445 Jan 5 07:35 greatsql-icu-data-files-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 8173 Jan 5 07:35 greatsql-mysql-config-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 5104617 Jan 5 07:35 greatsql-mysql-router-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 76307101 Jan 5 07:36 greatsql-server-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 1485673 Jan 5 07:35 greatsql-shared-8.0.32-25.1.oe20.x86_64.rpm
-rw-r--r-- 1 root root 409626153 Jan 5 07:38 greatsql-test-8.0.32-25.1.oe20.x86_64.rpm
大功告成,其他内容略过,不再赘述。
延伸阅读
在CentOS环境下编译GreatSQL RPM包
玩转MySQL 8.0源码编译
将GreatSQL添加到系统systemd服务
利用GreatSQL部署MGR集群
InnoDB Cluster+GreatSQL部署MGR集群
在Docker中部署GreatSQL并构建MGR集群
全文完。
Enjoy GreatSQL :)
《深入浅出MGR》视频课程
戳此小程序即可直达B站
https://www.bilibili.com/medialist/play/1363850082?business=space_collection&business_id=343928&desc=0
文章推荐:
-
在CentOS环境下编译GreatSQL RPM包
GreatSQL 8.0.32-25来了
GreatSQL一个关于主从复制的限制描述与规避
GreatSQL MGR + ProxySQL集群搭建方案
MGR新节点RECOVERING状态的分析与解决:caching_sha2_password验证插件的影响
图文结合丨玩转MySQL Shell for GreatSQL
野路子mysqld_safe玩法搞死mysqld进程
MTS性能监控你知道多少
MySQL 8.0.29 instant DDL 数据腐化问题分析
GreatSQL删除表分区特别慢的原因分析
MySQL对derived table的优化处理与使用限制
MySQL一次大量内存消耗的跟踪
MySQL运行时的可观测性
Myloader导入更快吗?并没有。。。
自打有了GIPKs,DBA和开发再也不用battle了
重现一条简单SQL的优化过程
想看更多技术好文,点个“在看”吧!
相关文章:
在openEuler环境下快速编译GreatSQL RPM包
在上一篇中,已经介绍了在CentOS环境下编译GreatSQL RPM包的过程,本文再介绍如何在openEuler环境下编译GreatSQL RPM包。 运行环境是docker中的openEuler 22.03 x86_64: $ docker -v Docker version 20.10.10, build b485636$ docker run -itd…...

C语言基础语法跟练 day3
31、不使用累计乘法的基础上,通过移位运算(<<)实现2的n次方的计算。 #include <stdio.h> int main() {int i 0;scanf("%d",&i);printf("%d",1<<i);return 0; } 32、问题:一年约有 3.…...
【控制篇 / 策略】(7.4) ❀ 01. IP地理位置数据库和地理地址对象 ❀ FortiGate 防火墙
【简介】在很多使用环境下,我们需要对指定国家的IP地址进行允许或禁止访问操作,例如只允许访问国内IP。以前只能手动添加IP地址对象到地址组,繁杂且效率低下,Fortinet提供了基于地理位置的IP库,就可以解决这个问题。 I…...

NX二次开发点通过云配准获取相同体
先找到体的参考方向(这个参考方向对于相同体重合之后是相同的),这个时候我们的思路是三个不共线的点确定一个坐标系,然后和绝对方向求转换矩阵。然后获取体的所有边的几何中心,把这些点通过转换矩阵转换之后存起来&…...
5.4 Android BCC环境搭建(eadb版 下)
四,BCC使用示例 这里以tcplife为例,来显示TCP会话的生命周期和吞吐量统计。 4.1 进入/bcc/tools目录 root@localhost:/bcc# cd tools/ root@localhost:/bcc/tools# ls CMakeLists.txt javacalls.sh rubystat_example.txt argdist.py javacalls_e…...

【AI视野·今日Robot 机器人论文速览 第七十四期】Wed, 10 Jan 2024
AI视野今日CS.Robotics 机器人学论文速览 Wed, 10 Jan 2024 Totally 17 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Hold em and Fold em: Towards Human-scale, Feedback-Controlled Soft Origami Robots Authors Immanuel Ampomah Mensah, Je…...

服务端性能测试——性能测试工具JMeter-L1
第一遍没学懂,后续文章会更新~ 目录: 1.JMeter介绍与安装Meter简介JMeter安装2.JMeter的运行JMeter运行、界面功能简介3.使用代理服务器录制请求录制压测脚本(一)Web端脚本录制方法4.测试计划5.线程组6.控制器7.JMeter采样器/取…...

C# OpenCvSharp DNN FreeYOLO 目标检测
目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN FreeYOLO 目标检测 效果 模型信息 Inputs ------------------------- name:input tensor:Float[1, 3, 192, 320] --------------------------------------------------------------- Outp…...

U盘启动安装win11遇到缺少计算机所需的介质驱动程序问题
一、使用U盘制作启动盘遇到问题 下载了windows原版镜像,验证了md5,确保文件没有损坏。使用ultroiso制作u盘启动盘,开始安装后出现下图的报错: 在网上搜索解决方案,主要有以下几种: 安装的时候,…...

正则表达式、文件访问(Python实现)
一、主要目的: 1.了解正则表达式的基本概念和处理过程。 2.掌握使用正则表达式模块 Re 进行字符串处理的方法。 3.了解文件的基本概念和类型。 4.掌握在 Python 中访问文本文件的方法和步骤。 5.熟悉在 Python 中访问二进制文件的方法和步骤。 二、主要内容和结…...

ES高级查询
ES中提供了一种强大的检索数据方式,这种检索方式称为Query DSL,这种方式的丰富查询语法让ES检索变得更强大,更简洁。 1.常见查询 1.1查询所有[match_all] match_all关键字:返回索引中的全部文档。 GET /products/_search { &…...

RT-Thread入门笔记6-空闲线程及两个常用的钩子函数
空闲线程 空闲线程是一个比较特殊的系统线程,它具备最低的优先级。当系统中无其他就绪线程可运行时,调度器将调度到空闲线程。 空闲线程还负责一些系统资源回收以及将一些处于关闭态的线程从线程调度列表中移除的动作 空闲线程在形式上是一个无线循环结…...

网络正常运行时间监控工具
正常运行时间是衡量系统可靠性的指标,表示为机器工作和可用时间的百分比。当提到 IT 网络时,正常运行时间是衡量网络设备、网站和其他服务的可用性的指标。网络正常运行时间通常以百分位数来衡量,例如“五个 9”,这意味着系统在 9…...
DEJA_VU3D - Cesium功能集 之 112-获取圆节点(1)
前言 编写这个专栏主要目的是对工作之中基于Cesium实现过的功能进行整合,有自己琢磨实现的,也有参考其他大神后整理实现的,初步算了算现在有差不多实现小140个左右的功能,后续也会不断的追加,所以暂时打算一周2-3更的样子来更新本专栏(每篇博文都会奉上完整demo的源代码…...
Matlab 建文件夹保存本次仿真图表数据和参数
文章目录 前言代码 前言 有时候跑的仿真参数非常多,保存结果的时候需要把仿真参数和数据一起保存,为方便起见,查了一下怎么建文件夹自动保存本次仿真图表数据和参数,再也不用担心忘记结果是什么参数跑出来的了~ 代码 % 定义变量…...

@JsonFormat与@DateTimeFormat
JsonFormat注解很好的解决了后端传给前端的格式,我们通过使用 JsonFormat可以很好的解决:后台到前台时间格式保持一致的问题 其次,另一个问题是,我们在使用WEB服务的时,可 能会需要用到,传入时间给后台&am…...
半监督学习 - 自训练(Self-training)
什么是机器学习 半监督学习中的自训练(Self-training)是一种利用已标记数据和未标记数据进行模型训练的方法。以下是自训练的详细教程: 步骤一:准备数据集 标记数据集: 收集和标记一小部分数据,用于有监…...

outlook邮件群发单显技巧?群发怎么单显?
outlook邮件群发单显如何设置?QQ邮箱怎么群发单显? 在群发邮件时,如何让每个收件人只看到自己的名字,而不是其他人的名字,这就涉及到所谓的“单显”技巧。下面蜂邮EDM就为大家揭秘Outlook邮件群发单显的奥秘。 outlo…...

【REST2SQL】07 GO 操作 Mysql 数据库
【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 MySQL是一个关系型数据库管理系统…...

[UI5] ODATA V4中的CRUD
文章目录 前言一、Read二、Create三、Update四、Delete 前言 ODATA V4在CRUD方面与V2截然不同。 这篇文章简单介绍V4中是如何进行CRUD操作 一、Read Model不再有read方法, 一般是把Path绑定到View中进行读取, 如果需要额外的读取数据,可使用…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...