将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文件。
参考资料: