文章目录

如果要发布个人修改的PostgreSQL,就需要使用rpm打包工具。

先将修改后的代码打包,假设代码的目录在mypostgresql

1
2
3
4
[postgres@anzhy pg9.3.4]$ tar -zcf mypostgresql.tar.gz mypostgresql/
[postgres@anzhy pg9.3.4]$ ls
my_extension mypostgresql mypostgresql.tar.gz postgresql
[postgres@anzhy pg9.3.4]$

将打包好的源码包文件放到$HOME/rpmbuild/SOURCES/目录下,然后编辑描述rpm包的spec文件,spec文件内容如下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Summary: test mypostgresql
Name: mypostgresql
Version: 1.0.0
Release: 1
License: MIT
Group: Applications/Databases
Source: mypostgresql.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Url: http://www.test.com
Packager: test
Prefix: %{_prefix}
Prefix: %{_sysconfdir}
%define userpath /home/mypostgresql
%description
test mypostgresql.
%prep
%setup -c
%install
install -d $RPM_BUILD_ROOT%{userpath}
cp -a %{name}* $RPM_BUILD_ROOT%{userpath}
%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_DIR/%{name}-%{version}
%files
%defattr(-,root,root)
%{userpath}

由于需要用rpmbuild来打包,所以需要先安装rpmbuild。

然后运行rpmbuild -ba mypostgresql.spec来打包,打包过程有很长的输出,如下,

1
2
3
4
5
6
7
8
9
10
11
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/postgres/rpmbuild/BUILDROOT/mypostgresql-1.0.0-1.x86_64
Wrote: /home/postgres/rpmbuild/SRPMS/mypostgresql-1.0.0-1.src.rpm
Wrote: /home/postgres/rpmbuild/RPMS/x86_64/mypostgresql-1.0.0-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.MdWKRJ
+ umask 022
+ cd /home/postgres/rpmbuild/BUILD
+ cd mypostgresql-1.0.0
+ rm -rf /home/postgres/rpmbuild/BUILDROOT/mypostgresql-1.0.0-1.x86_64
+ rm -rf /home/postgres/rpmbuild/BUILD/mypostgresql-1.0.0
+ exit 0
[postgres@anzhy pg9.3.4]$

看到以上结果,就可以认为打包成功。进一步的确认可以查看生成的打包文件,目录在$HOME/rpmbuild/RPMS/x86_64/下,是程序包文件;还有一个是源码包文件,在$HOME/rpmbuild/SRPMS/下。

本文参考了12

文章目录

欢迎来到Valleylord的博客!

本博的文章尽量原创。