如何在RedHat6(7) or CentOS6(7)上制作无依赖的PostgreSQL数据库的RPM包

时间:2021-10-04 21:58:51

本文解决了源代码安装都需要先检查系统上是否安装了应用程序所依赖的软件包的烦恼,对源代码开发者也有一定的帮助。可以在该基础上进行适当的修改,以满足自己的要求。

RedHat5 or CentOS5已经提供了制作RPM包的目录,可以直接把需要制作的RPM包的应用程序的源代码包放系统指定的目录,而不需要像在RedHat6(7)or CentOS6(7)上自己创建制作RPM包的目录。

1 添加普通用户

useradd redhat

passwd redhat

redhat

redhat

2 切换到普通用户redhat

su – redhat

3 在redhat的home目录下创建rpmbuild目录

mkdir –pv rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

4 把pgrpms项目(http://git.postgresql.org/gitweb/?p=pgrpms.git)克隆到本地

cd /opt

mkdir pgrpm

git clone git://git.postgresql.org/git/pgrpms.git

/opt/pgrpm/pgrpms

5 把pgrpms项目中与本地系统版本相对应目录中的文件复制到创建的SOURCE目录下

cp /opt/pgrpm/pgrpms/rpm/redhat/9.4/postgresql/EL-6/* /home/redhat/rpmbuild/SOURCE

cd /home/redhat/rpmbuild/SOURCE

cp postgresql-9.4.spec ../SPEC

6 下载PG9.4.5源码包与PG9.4.5的官方文档到/opt/soft_bak

postgresql-9.4.5.tar.bz2 postgresql-9.4-A4.pdf

7 把PG9.4.5源码包以及PG9.4.5的文档复制到/home/redhat/rpmbuild/SOURCE

目录下

8 安装PostgreSQL的依赖包

glibc-devel bison flex perl-ExtUtils-Embed per(ExtUtils::MakeMaker) python-devel tcl-devel readline-devel openssl-devel krb5-devel e2fsprogs-devel libxml2-devel libxslt-devel pam-devel libuuid-devel openldap-devel openjade opensp docbook-dtds

docbook-style-dsssl

9 开始打PG9.4.5二进制RPM包

(yum install –y rpm-build)

cd /home/redhat/rpmbuild/SPEC

rpmbuild –bb postgresql-9.4.spec

10 查看打好的RPM包

打好的RPM包存储在RPMS目录下