一 环境准备
1 源码
下载源码
https://github.com/markfasheh/ocfs2-tools/releases
下载解压到目录 ocfs2-tools-1.86
2 编译源码
确保源码能在系统上编译过;
使用编译驱动的环境,centos8.1
进入源码目录
执行 ./autogen.sh
需要安装 rpm包 libuuid-devel libaio-devel readline-devel glib2-devel
然后执行下make,无误后进行下一步
3 准备spec文件
参考源码路径下:
vendor/common/ocfs2-tools.spec-generic
我简单修改了下参考spec如下
#
# Spec file for ocfs2-tools
#
# Macros
# This one is hardcoded because, well, it belongs there
%define _prefix /usr
# Because RPM is dumb
%define _unpackaged_files_terminate_build 0
# Because RH defines lib64 on ppc32 builds
%ifarch ppc
%define brokenrhlibdir /usr/lib
%else
%define brokenrhlibdir %{_libdir}
%endif
%define build_ocfs2console 0
%define compile_py 0
%define systemd_enabled 1
%if %{build_ocfs2console}
%define compile_py python3
%endif
Summary: Tools for managing the Oracle Cluster Filesystem 2
Name: ocfs2-tools
Version: 1.8.6
Release: 1
License: GPL
Group: System Environment/Kernel
Source: ocfs2-tools-1.8.6.tar.gz
URL: http://oss.oracle.com/projects/ocfs2-tools/
Distribution: Oracle
Vendor: Oracle
Packager: nobody <nobody@oracle.com>
Exclusiveos: Linux
Requires: bash, which, coreutils, e2fsprogs, glib2 >= 2.2.3, util-linux >= 2.12j
BuildRequires: e2fsprogs-devel, glib2-devel >= 2.2.3, python36-devel >= 3.6, util-linux >= 2.12j
BuildRoot: %{_tmppath}/ocfs2-tools-1-8.6-root
%if !%{build_ocfs2console}
Obsoletes: ocfs2console
%endif
%description
Tools to manage Oracle Cluster Filesystem 2 volumes.
%if %{build_ocfs2console}
%package -n ocfs2console
Summary: GUI frontend for OCFS2 management
Group: System Environment/Kernel
Requires: e2fsprogs, glib2 >= 2.2.3, vte >= 0.11.10, python >= 3.6, ocfs2-tools = %{version}
AutoReqProv: No
%description -n ocfs2console
GUI frontend for management and debugging of Oracle Cluster Filesystem 2
volumes.
%endif
%package -n ocfs2-tools-devel
Summary: Headers and static archives for ocfs2-tools
Group: Development/Libraries
Requires: e2fsprogs-devel, glib2-devel >= 2.2.3, oc