すがブロ

sugamasaoのhatenablogだよ

Apache2.2とSubversion1.4でバージョン管理させてみよう!

Subversionを動かすに当たって、(どうせ内部だけでしか使わないが)Apache2.2だとライブラリに問題があるという話しを聞くが、回避策はあるようなのでちょっと試してみた。あとはhttp経由でのやり方も抑えておきたいってこともあるし。。
ちなみに、インストール環境は以下

インストール手順は以下のような感じ(紆余曲折あってこうなった)

  1. Apacheのインストール(/usr/local/apache2)
  2. Subversionに必要なライブラリのインストール
  3. Subversionのインストール(/usr/local/subversion1.4.2)


1.Apacheのインストール

これは特別ハマることは無いと思う。事前にWebDavを使うために enable-dav をつけてるくらいかな。
ちなみに、ソースは以下からDLした。
http://ftp.kddilabs.jp/infosystems/apache/httpd/

tar zxvf httpd-2.2.3.tar.gz
cd ./httpd-2.2.3
./configure --prefix=/usr/local/apache2 --enable-so --enable-dav
make
make install

ちなみに、動作確認をする時に、そのまま起動しようとすると動かなかった。どうもServerNameを設定してくれと言われるので、しぶしぶ設定(デフォルトのはコメントアウトになっている)。
で、ひとまず単体で動作することは確認できたので、Subversionのインストールをする。
と思ったんだけど、足りないライブラリがあるとか言われたんでまずライブラリのインストールをしなきゃいかんようだ。
2.Subversionに必要なライブラリのインストール

どうもSubversion用のライブラリを提供しているパッケージ?のようなものがあるようなので、まずそれをDL。
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=260&folderID=7495
ここから、「subversion-deps-1.4.2.tar.gz」を落としてくる。ちなみに、Subversion本体も上記URLからDLする。
で、解凍するのだが、まずSubersion本体を解凍してからライブラリ用のパッケージを解凍したほうが具合が良い気がする。

tar zxvf subversion-1.4.2.tar.gz
tar zxvf subversion-deps-1.4.2.tar.gz

そうすると、両方とも「subversion-1.4.2」ってディレクトリに解凍される。

cd ./subversion-1.4.2

このあと、通常なら./configure 〜なんやらでインストールなんだけど、上記の通りライブラリがないといわれる。なので、まず足りないライブラリのインストールを行う。
ちなみに、この環境で言われたのは zlib と neon というライブラリだった(そして、例のライブラリ用のパッケージをインストールすると zlib や neon というディレクトリができていて、その中でmakeすれば上手いこと行く)。

cd ./zlib
./configure
make
make install

これで zlib のインストール完了。簡単である。同じ要領で neon も。

cd ./neon
./configure

で、ここまで行って libxml が無い(or 古い)と言われる。確かに、Vineにインストールされているのは、古かった。なので、まずは libxml とやらをインストールしなきゃならんようだ。
というわけで、色々探したら以下にデータがあるのが見つかったのでそこからDLすることにした。
ftp://xmlsoft.org/libxml2/
ここの、libxml2-2.6.11.tar.gzをダウンロードし、あとはいつものお決まりパターン。

tar zxvf libxml2-2.6.11.tar.gz
cd ./libxml2-2.6.11
./configure
make
make install

で、neon インストールの続き。

./configure
make
make install

今度はうまくいった。これでようやく Subversion のインストールにこぎつけられた。。。長かった。
3.Subversionのインストール

まず、今回の焦点は、デフォルトのままだとApache2.2で使っているaprとSubversionが使いたいaprのバージョン不一致によってすぐには動きませんってことなので、その回避を行うためのオプションをつけてインストールする。

./configure --prefix=/usr/local/subversion1.4.2 \

    • without-berkeley-db \
    • with-apr=/usr/local/apache2 \
    • with-apr-util=/usr/local/apache2 \
    • with-apxs=/usr/local/apache2/bin/apxs

上記 configure の aprとapr-utilの指定がそう。自前じゃなくて、 Apacheで使ってるのを使えと言っている(はずだ)。で、あとよくわからんが、apxsも一緒に指定しておいた。これについては本当によくわからない。
最初はその3つ(あとprefix)で configure を掛けたんだけど、どうもberkeley-dbで文句を言われていたようなので、明示的に使わないことを宣言してみた。……これでも configure の最後になんか言われたけど、エラーではないのでとりあえず無視。
で、ここまでできたら適当にリポジトリを作って、Apacheから読めるようにしてやる。
そうしてapacheで動作確認……ちゃんと見えてる!
そして、eclipseのプラグイン(subclipce)からも……見えるしチェックアウトもできた。
本当はコミットまで試したかったんだけど、そこはパーミッションのからみだと思うのでインストール作業の範囲外だろう。……それに、正直もう寝たい_| ̄|○
というわけで分かったこと。
Apache2.2+Subversion1.4.2で動作の確認はできました、と。