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