kakiro-webカキローウェブ

システム開発情報とコンピューター書籍の紹介サイト

CentOS6.5 64bitにSubversion1.7.4をRPMからインストール

CentOS6.5の64bit版にSubversion1.7.4をRPMからインストールする方法を以下に示します。

※SubversionのSRPMのダウンロード元にもなっているRepoForgeがもう更新されていないようですので、このページも今後バージョンアップ等の更新を行う予定はありません。

当サイトでもCentOS6 64bitにApache2.4をインストールする方法を紹介していますが、Apache2.4がインストールされていると、Subversionのインストールに必要なApacheのモジュール「mod_dav_svn」が以下のようなエラーによりCentOS6.5の標準リポジトリからインストールできなくなってしまいます。

Requires: httpd-mmn = 20051115
Installed: httpd-2.4.10-1.x86_64 (installed)
    httpd-mmn = 20120211
Available: httpd-2.2.15-29.el6.centos.x86_64 (base)
    httpd-mmn = 20051115
Available: httpd-2.2.15-30.el6.centos.x86_64 (updates)
    httpd-mmn = 20051115
Available: httpd-2.2.15-31.el6.centos.x86_64 (updates)
    httpd-mmn = 20051115

これはCentOS6.5の標準リポジトリからインストールできる「mod_dav_svn」がApache2.2用に作成されているため発生してしまいます。

RPMを作成する場合、Subversionの公式サイトからソースをダウンロードすることができますがSPECファイルが付いていないため、このままではrpmbuildコマンドを使用してRPMの作成ができません。

SubversionのRPMがインストールできるサイトとして、Subversionの公式サイトからCollabNet、WANdisco、RepoForgeが紹介されていますが、前者2つはユーザー登録が必要であり、RepoForgeからインストールできる「mod_dav_svn」のRPMはApache2.2用に作成されているため上記と同様のエラーになってしまいます。

ここではRPMはRepoForgeからダウンロードしたSRPMを元に作成していきます。

※参考までにRepoForgeをyumリポジトリに追加する方法については、当サイトのCentOS6.5 64bitのyumリポジトリにRepoForgeを追加のページをご覧ください。

依存関係にあるパッケージでCentOS6.5の標準リポジトリからインストールできるものについては特別なものでない限り省略しています。

以下の各コマンドでプロンプトが「#」で開始しているものはrootユーザーでの実行、「$」で開始しているものは一般ユーザーでの実行となります。

ここでRPMの作成に使用しているrpmbuildコマンドについては、当サイトのCentOS6 64bit rpmbuildコマンドによるRPMの作成のページもご覧ください。

perl-ExtUtils-MakeMakerのインストール

Subversion1.7.4のRPMを作成の際に依存関係としてperl(ExtUtils::MakeMaker)が必要と警告メッセージが表示された場合、CentOS6.5の標準リポジトリにperl(ExtUtils::MakeMaker)というパッケージはありませんが、こちらはperl-ExtUtils-MakeMakerをインストールすればよいです。

これは以下のコマンドで確認できます。

# yum provides "perl(ExtUtils::MakeMaker)"
:(略)
perl-ExtUtils-MakeMaker-6.55-136.el6.x86_64 : Create a module Makefile
Repo        : base
Matched from:
Other       : perl(ExtUtils::MakeMaker)

以下のコマンドを実行してperl-ExtUtils-MakeMakerのインストールを行います。

# yum install perl-ExtUtils-MakeMaker

java-1.6.0-openjdk-develのインストール

Subversion1.7.4のRPMを作成の際に依存関係としてjava-develが必要と警告メッセージが表示された場合、CentOS6.5の標準リポジトリにjava-develというパッケージはありませんが、こちらはjava-1.6.0-openjdk-develをインストールすればよいです。

これは以下のコマンドで確認できます。

# yum provides java-devel
:(略)
java-1.5.0-gcj-devel-1.5.0.0-29.1.el6.x86_64 : JPackage development compatibility layer for GCJ
Repo        : base
Matched from:
Other       : java-devel



1:java-1.6.0-openjdk-devel-1.6.0.0-5.1.13.3.el6_5.x86_64 : OpenJDK Development Environment
Repo        : updates
Matched from:
Other       : java-devel



1:java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64 : OpenJDK Development Environment
Repo        : base
Matched from:
Other       : java-devel



1:java-1.6.0-openjdk-devel-1.6.0.0-3.1.13.1.el6_5.x86_64 : OpenJDK Development Environment
Repo        : updates
Matched from:
Other       : java-devel



1:java-1.6.0-openjdk-devel-1.6.0.0-6.1.13.4.el6_5.x86_64 : OpenJDK Development Environment
Repo        : updates
Matched from:
Other       : java-devel

以下のコマンドを実行してjava-1.6.0-openjdk-develのインストールを行います。

# yum install java-1.6.0-openjdk-devel

rubyのインストール

Subversion1.7.4のRPMを作成の際に依存関係として警告メッセージは表示されませんが、エラーになってしまう場合はCentOS6.5の標準リポジトリからrubyのインストールが必要なようです。

以下のコマンドを実行してrubyのインストールを行います。

# yum install ruby

perl-ExtUtils-Embedのインストール

Subversion1.7.4のRPMを作成の際に依存関係として警告メッセージは表示されませんが、エラーになってしまう場合はCentOS6.5の標準リポジトリからperl-ExtUtils-Embedのインストールが必要なようです。

以下のコマンドを実行してperl-ExtUtils-Embedのインストールを行います。

# yum install perl-ExtUtils-Embed

Subversion1.7.4のインストール

RepoForgeからSubversion1.7.4のSPRMをダウンロードしてRPMを作成し、インストールを行います。

Subversion1.7.4のSRPMをダウンロード

以下のコマンドを実行してSubversion1.7.4のSRPMのダウンロードを行います。

※ダウンロード元のURLは、RepoForgeのSubversionのパッケージのページにリンクがあります。

$ wget http://pkgs.repoforge.org/subversion/subversion-1.7.4-0.1.rf.src.rpm

Subversion1.7.4のRPMを作成

以下のコマンドを実行してSubversion1.7.4のRPMの作成を行います。

$ rpmbuild --rebuild --clean subversion-1.7.4-0.1.rf.src.rpm

以下のようなエラーになった場合、

checking for Apache module support via DSO through APXS... ./configure: line 7359: /usr/sbin/apxs: No such file or directory
configure: error: no - APXS refers to an old version of Apache
                      Unable to locate /mod_dav.h

httpd-develに含まれているapxsのインストール先がApache2.2では「/usr/sbin/apxs」になるのですが、Apache2.4では「/usr/bin/apxs」に変更されているのが原因です。

rpmbuildコマンド実行時のSPECファイルの出力先にSubversion1.7.4のSPECファイル「SPECS/subversion.spec」が出力されていますので、こちらを以下のように変更します。

apxsのパスを指定しているところを1箇所変更します。

:(略)
%configure \
    --disable-mod-activation \
    --disable-neon-version-check \
    --disable-static \
    --with-apr="%{_prefix}" \
    --with-apr-util="%{_prefix}" \
    --with-apxs="%{_sbindir}/apxs" \
    ↓変更
    --with-apxs="%{_bindir}/apxs" \

以下のコマンドを実行して変更したSPECファイルからRPMの作成を行います。

$ rpmbuild -bb --clean subversion.spec

以下のRPMが作成されます。

  • subversion-1.7.4-0.1.el6.x86_64.rpm
  • subversion-devel-1.7.4-0.1.el6.x86_64.rpm
  • mod_dav_svn-1.7.4-0.1.el6.x86_64.rpm
  • subversion-perl-1.7.4-0.1.el6.x86_64.rpm
  • subversion-javahl-1.7.4-0.1.el6.x86_64.rpm
  • subversion-ruby-1.7.4-0.1.el6.x86_64.rpm

Subversion1.7.4のインストール

以下のコマンドを実行してSubversion1.7.4のインストールを行います。

Apacheとの連携にはmod_dav_svnが必要となるため一緒にインストールを行います。

# rpm -Uvh subversion-1.7.4-0.1.el6.x86_64.rpm mod_dav_svn-1.7.4-0.1.el6.x86_64.rpm

インストール後の設定

Apacheの設定ファイルの編集

Subversionが利用できるようにするにはApacheの設定ファイル「/etc/httpd/conf/httpd.conf」で、Subversionの設定ファイル「/etc/httpd/conf.d/subversion.conf」の読み込みと、モジュール「dav_module」の有効化を行う必要があります。

「subversion.conf」の読み込みには以下の記述を追記します。

Include /etc/httpd/conf.d/subversion.conf

他のパッケージで使用しているconfファイルがある場合も一緒に読み込めるようにするには、以下の記述を追記します。

Include /etc/httpd/conf.d/*.conf

モジュール「dav_module」の有効化は、以下の設定がコメントアウトされていたら解除します。

#LoadModule dav_module lib64/httpd/modules/mod_dav.so
↓コメントアウトされていたら解除
LoadModule dav_module lib64/httpd/modules/mod_dav.so

Subversionの設定ファイルの編集

Subversionの設定ファイル「/etc/httpd/conf.d/subversion.conf」で、モジュールを読み込むパスが実際のものと異なっていますので以下のように編集します。

LoadModule dav_svn_module     modules/mod_dav_svn.so
↓変更
LoadModule dav_svn_module     lib64/httpd/modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
↓変更
LoadModule authz_svn_module   lib64/httpd/modules/mod_authz_svn.so
LoadModule dontdothat_module  modules/mod_dontdothat.so
↓変更
LoadModule dontdothat_module  lib64/httpd/modules/mod_dontdothat.so

尚、これらのモジュールはmod_dav_svnに含まれており、モジュールのパスは以下のコマンドで確認することができます。

# rpm -ql mod_dav_svn
:(略)
/usr/lib64/httpd/modules/mod_authz_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dontdothat.so
:(略)

httpd.confで、「ServerRoot "/usr"」と設定されているため、subversion.confでは「/usr」以下でのパス指定が行えるようになっています。

以上でSubversion1.7.4のインストールの完了です。

Subversionに関するおすすめの書籍

当サイトの書籍紹介ページでSubversionに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。