rpm包制作
工具
安装rpm-build
:
yum install -y rpm-build
建立目录结构
mkdir -p /root/rpmbuild/BUILD
mkdir -p /root/rpmbuild/BUILDROOT
mkdir -p /root/rpmbuild/RPMS
mkdir -p /root/rpmbuild/SOURCES
mkdir -p /root/rpmbuild/SPECS
mkdir -p /root/rpmbuild/SRPMS
准备工作
配置.spec
文件
以下是postgresql-hll-2.10.2
的spec文件(postgresql-hll.spec)示例:
# SPEC file for postgresql-hll
%define pgbaseinstdir /usr/pgsql-10
Name: postgresql-hll
Version: 2.10.2
Release: 1.el7
Summary: SUNING
Group: SUNING
License: Apache License, Version 2.0
URL: https://github.com/aggregateknowledge/postgresql-hll
Source0: postgresql-hll-2.10.2.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: gcc
%description
PostgreSQL extension adding HyperLogLog data structures as a native data type
%prep
%setup -q
%build
PATH=/usr/pgsql-10/bin:$PATH
make
%install
rm -rf %{buildroot}
PATH=/usr/pgsql-10/bin:$PATH
make install DESTDIR=%{buildroot}
%clean
rm -rf %{buildroot}
%files
%dir %{pgbaseinstdir}/share/extension
%defattr(0644,root,root)
%{pgbaseinstdir}/share/extension/hll.control
%{pgbaseinstdir}/share/extension/hll--2.10.sql
%defattr(0755,root,root)
%{pgbaseinstdir}/lib/hll.so
%changelog
其中Release
设置成“1%{?dis}”,则打包的rpm包名称中会包含linux系统类型(如centos)。
将postgresql-hll.spec
放到指定目录:
cp postgresql-hll.spec /root/rpmbuild/SPECS/
将源码包放到指定目录
cp postgresql-hll-2.10.2.tar.gz /root/rpmbuild/SOURCES/
注: 源码包名称postgresql-hll-2.10.2.tar.gz
要与配置文件postgresql-hll.spec
中的Source0
设置一致。
打包
cd /root/rpmbuild
rpmbuild -bb SPECS/postgresql-hll.spec