git 2.2.0 の 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-2.2.0-1.el6.src.rpm
- git-2.2.0-1.el6.x86_64.rpm
- git-all-2.2.0-1.el6.x86_64.rpm
- git-svn-2.2.0-1.el6.x86_64.rpm
- git-cvs-2.2.0-1.el6.x86_64.rpm
- git-arch-2.2.0-1.el6.x86_64.rpm
- git-email-2.2.0-1.el6.x86_64.rpm
- git-gui-2.2.0-1.el6.x86_64.rpm
- gitk-2.2.0-1.el6.x86_64.rpm
- gitweb-2.2.0-1.el6.x86_64.rpm
- perl-Git-2.2.0-1.el6.x86_64.rpm
git のバージョンを上げるだけであれば、
git-2.2.0-1.el6.x86_64.rpm と perl-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