/ centos

将git源码打包成rpm安装包(centos)

centos6系统里通过yum安装的git版本只有1.7.1,好多新特性都没有。而使用编译安装的话,每台服务器都要编译一遍太麻烦,以后更新起来也麻烦,所以决定自己打一个rpm包。

首先需要安装rpm-build

yum install -y rpm-build

然后创建一个rpmbuild目录:

cd ~ && rpmdev-setuptree

https://github.com/git/git/releases下载git源码包,一定要下载.tar.gz版本的,rpmbuild需要这种格式。

先下载到home目录下

wget https://github.com/git/git/archive/v2.6.4.tar.gz -O ~/git-2.6.4.tar.gz

复制git-2.6.4.tag.gz到rpmbuild目录下的SOURCES目录

cp ~/git-2.6.4.tar.gz ~/rpmbuild/SOURCES

解压tar包后,在git-2.6.4目录中执行

make git.spec && rpmbuild -ba git.spec

如果在rpmbuild过程中提示错误,通常是因为编译依赖的原因,这个时候只需要执行yum install 依赖包,然后再次执行rpmbuild -ba git.spec。

等到编译打包完成后,rpm包位于~/rpmbuild/RPMS/x86_64目录下,通常只需要git-2.6.4-1.el6.x86_64.rpm和perl-Git-2.6.4-1.el6.x86_64.rpm两个包。

在需要安装新版git的服务器上,先通过yum卸载旧包

yum remove -y perl-Git git

然后将那两个rpm包复制过来,再通过yum安装:

yum localinstall git-2.6.4-1.el6.x86_64.rpm perl-Git-2.6.4-1.el6.x86_64.rpm

这个时候执行git –version就可以看到系统里已经是新版本的git了。

=12月10日补充=

这种方法适用于大多数程序,例如ganglia就在源码目录下提供了对应的spec文件。

参考资料:

  1. https://gist.github.com/fernandoaleman/1376973
  2. http://stackoverflow.com/a/33439452/2013307
  3. 制作php的RPM包:https://blog.linuxeye.com/431.html
将git源码打包成rpm安装包(centos)
Share this