文章目录
如果要发布个人修改的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: 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/
下。
本文参考了,。