CentOS5にSubversion1.7.6をソースからインストール

RPMで入っているSubversionが古いので、最新のSubversionをソースからインストールする。

条件

  • mod_dav_svnは今回使わないのでインストールしない
    (すでにRPMでインストールされているものを上書きしない)
  • 個人的にしか使わないので、/usr/localにインストールするのではなく、$HOME/local以下でビルドとインストールを行う
  • PATHは/usr/binよりも$HOME/local/binが上位になるように定義しておく
    export PATH=$HOME/local/bin:$PATH

手順

ソースのダウンロード

$ cd $HOME/local/src
$ wget http://ftp.tsukuba.wide.ad.jp/software/apache/subversion/subversion-1.7.6.tar.bz2
$ tar -xvf subversion-1.7.6.tar.bz2
$ cd subversion-1.7.6

Makefileの作成

$ ./configure --prefix=$HOME/local --without-apxs

RPMで入っているSQLiteのバージョンが要件を満たしていないとの表示

checking sqlite library version (via pkg-config)... none or unsupported 3.3
no

An appropriate version of sqlite could not be found. We recommmend
3.7.6.3, but require at least 3.6.18.
Please either install a newer sqlite on this system

or

get the sqlite 3.7.6.3 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3.7.6.3.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
$HOME/local/src/subversion-1.7.6/sqlite-amalgamation/sqlite3.c

configure: error: Subversion requires SQLite

インストールしたくないので、後者の指示に従ってSQLiteの最新ソースコードを入手して配置する

$ wget http://www.sqlite.org/sqlite-amalgamation-3071400.zip
$ unzip sqlite-amalgamation-3071400.zip
$ mv sqlite-amalgamation-3071400 sqlite-amalgamation

再度configure && make

$ ./configure --prefix=$HOME/local --without-apxs
$ make

make中にエラーが発生

libtool: link: only absolute run-paths are allowed
make: *** [subversion/mod_dav_svn/mod_dav_svn.la] エラー 1

直前のコマンド

cd subversion/mod_dav_svn && /bin/sh $HOME/local/src/subversion-1.7.6/libtool --tag=CC --silent --mode=link gcc -g -O2 -g -O2 -pthread -D_LARGEFILE64_SOURCE -DNE_LFS -rpath -avoid-version -module -o mod_dav_svn.la activity.lo authz.lo deadprops.lo liveprops.lo lock.lo merge.lo mirror.lo mod_dav_svn.lo posts/create_txn.lo reports/dated-rev.lo reports/deleted-rev.lo reports/file-revs.lo reports/get-location-segments.lo reports/get-locations.lo reports/get-locks.lo reports/log.lo reports/mergeinfo.lo reports/replay.lo reports/update.lo repos.lo util.lo version.lo ../../subversion/libsvn_repos/libsvn_repos-1.la ../../subversion/libsvn_fs/libsvn_fs-1.la ../../subversion/libsvn_delta/libsvn_delta-1.la ../../subversion/libsvn_subr/libsvn_subr-1.la

をよくみると、libtoolの -rpath の引数がない。Makefileを確認すると

-rpath $(APACHE_LIBEXECDIR)

という箇所があり、APACHE_LIBEXECDIRをたどっていくと

APACHE_LIBEXECDIR = $(DESTDIR)

にたどり着くが、DESTDIRを定義している箇所がない。
これはapxsを省略したための模様。

とりあえずインストール先のlibを指定してビルドを続行させる。

$ DESTDIR=$HOME/local/lib make

インストール

$ make install
$ svn --version
svn, バージョン 1.7.6 (r1370777)

参考

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中