168人参与 • 2024-08-04 • 鸿蒙系统
greatsql数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为mysql或percona server for mysql的理想可选替换。greatsql已参与到openeuler db sig的工作中,并于日前发布 greatsql for openeuler的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
用默认的yum源即可,无需额外添加。
安装 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 krb5-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
创建相应的目录
[root@oe /]# mkdir -p /root/rpmbuild/sources
访问此链接 https://gitee.com/greatsql/greatsql/releases/tag/greatsql-8.0.32-25,找到 greatsql-8.0.32-25.tar.xz
下载greatsql源码包,放在上面创建的 /root/rpmbuild/sources
目录下,并解压缩。
访问此链接 https://gitee.com/greatsql/greatsql-doc/blob/master/build-gs/greatsql.spec,下载 greatsql.spec
文件,放在上面创建的 /root/rpmbuild/
目录下。
编译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
目录下。
从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 --nodebuginfo --define "_smp_mflags -j14" --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
大功告成,其他内容略过,不再赘述。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论