読者です 読者をやめる 読者になる 読者になる

tkuchikiの日記

Linux やプログラミングについて書きます。

git 2.2.0 の rpm 作成方法

linux rpmbuild git rpm

rpm を作成した環境は、CentOS 6.4、git 1.7.1 です。

執筆時(2014/12/15) の git 最新版は 2.2.0 でした。
git.spec が極端に変更されない限りは、
多少バージョンが前後しても同様の手順で作業できると思います。

perl-Git に、subversion-perl, perl-YAML が必要なのと、build 時に perl-ExtUtils-MakeMaker が必要だったので、BuildRequires を追加する patch を用意しました(git.spec.patch)。
patch があてられないときは、BuildRequires を直接書き換えてください。

@@ -8,7 +8,7 @@
 Group:                 Development/Tools
 URL:           http://kernel.org/pub/software/scm/git/
 Source:        http://kernel.org/pub/software/scm/git/%{name}-%{version}.tar.gz
-BuildRequires: zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext  %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
+BuildRequires: zlib-devel >= 1.2, openssl-devel, curl-devel, expat-devel, gettext, subversion-perl, perl-YAML, perl-ExtUtils-MakeMaker %{!?_without_docs:, xmlto, asciidoc > 6.0.3}
 BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

 Requires:      perl-Git = %{version}-%{release}

あと、Changelog を適宜修正すると良いと思います。
patch を作成したら、以下を実行します。

wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz
tar zxf git-2.2.0.tar.gz
mv git-2.2.0.tar.gz ~/rpmbuild/SOURCES/
yum install -y zlib-devel openssl-devel curl-devel expat-devel gettext subversion-perl perl-YAML xmlto asciidoc perl-ExtUtils-MakeMaker
patch -u git-2.2.0/git.spec < ./git.spec.patch
mv git-2.2.0/git.spec ~/rpmbuild/SPECS/
rpmbuild -ba ~/rpmbuild/SPECS/git.spec

ここまで実行すると、以下のファイルが作成されます。

git のバージョンを上げるだけであれば、
git-2.2.0-1.el6.x86_64.rpmperl-Git-2.2.0-1.el6.x86_64.rpm を入れれば良さそうなので、

rpm -Uvh ~/rpmbuild/RPMS/x86_64/git-2.2.0-1.el6.x86_64.rpm ~/rpmbuild/RPMS/x86_64/perl-Git-2.2.0-1.el6.x86_64.rpm

で upgrade 完了です。
git と perl-Git は相互に依存しているようなので、同時に upgrade(install) しないとだめでした。

$ git --version
git version 2.2.0