
Ubuntu日本語フォーラム

ログインしていません。
Ubuntu のパッケージリポジトリにある subversion は、1.4.6 といささか古く、例えば Eclipse のプラグインである Subclipse でチェックアウトしたワーキングコピーとは形式の互換性がなく、このワーキングコピーを操作することができません。
そこで、以下のページを参考に、1.6.3 をソースからビルドしようとしたのですが、Subversion のコンパイル時にビルドエラーが発生します。
https://wiki.ubuntulinux.jp/UbuntuTips/Application/Subversion%E3%82%92%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF
行った手順は以下のとおりです(必要なファイルはすべてダウンロードされているものとします)。
tar xvfz apr-1.3.6.tar.gz
cd apr-1.3.6
./buildconf
make
sudo make test
sudo make install
cd ..
tar xvfz apr-util-1.3.8.tar.gz
cd apr-util-1.3.8
./buildconf --with-apr=../apr-1.3.6
./configure --with-apr=/usr/local/apr/
make
sudo make test
sudo make install
cd ..
tar xvfz subversion-1.6.3.tar.gz
cd subversion-1.6.3
./configure --with-apr-util=/usr/local/apr/
make
ここまで行ったところで、subversion のビルド時に、以下のようなエラーが発生します。
/bin/bash /home/ogata/Desktop/subversion-1.6.3/libtool --tag=CC --silent --mode=compile gcc -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -g -O2 -pipe -Wall -g -O2 -pthread -I./subversion/include -I./subversion -I/usr/include/apr-1.0 -I/usr/local/apr/include/apr-1 -o subversion/libsvn_subr/cache-memcache.lo -c subversion/libsvn_subr/cache-memcache.c
In file included from /usr/include/apr-1.0/apr_file_io.h:29,
from ./subversion/include/svn_io.h:33,
from ./subversion/include/svn_base64.h:28,
from subversion/libsvn_subr/cache-memcache.c:22:
/usr/include/apr-1.0/apr_file_info.h:142: error: redefinition of typedef apr_ino_t
/usr/local/apr/include/apr-1/apr.h:287: error: previous declaration of apr_ino_t was here
make: *** [subversion/libsvn_subr/cache-memcache.lo] エラー 1
複数のヘッダで apr_ino_t という型が重複定義されているのが原因ですが、これが発生する原因がわかりません。何か手順が間違っているのでしょうか。
上記を行った私の環境は以下のとおりです。
- Ubuntu 8.04 (Portable Ubuntu)
オフライン
Jauntyで試してみましたが、問題なくコンパイルできました。ただし、libaprutil1-devはJaunty標準の1.2.12を使用しています。
上記の例ではapr、apr-utilともに自分でコンパイルしていますが、何か理由がありますか?
snbversionのINSTALLドキュメントには、特にバージョンの指定はないようですが。
また、launchpadをsubversion 1.6で検索すると
https://launchpad.net/~mdiers/+archive/svn16
があったりします。
オフライン
と、失礼。Wikiページにaprの最新版を入れろと書いてありますね。
オフライン
ぱっと見た限りでは、
-I/usr/include/apr-1.0 -I/usr/local/apr/include/apr-1
の順序が逆かもしくは、前者が指定されない状態じゃないと、混ざっちゃう気がしますね。
ひょっとして、--with-aprと、--with-apr-utilの両方を明示的に指定する必要がある ということはありませんか?
オフライン
コメントありがとうございます。
mizuno による投稿:
Jauntyで試してみましたが、問題なくコンパイルできました。ただし、libaprutil1-devはJaunty標準の1.2.12を使用しています。
標準でもできるんですね。
参考になります。
mizuno による投稿:
また、launchpadをsubversion 1.6で検索すると
https://launchpad.net/~mdiers/+archive/svn16
があったりします。
おお!
私にとっては、こちらの方が手っ取り早かったのですが、乗りかかった船なのでソースからビルドしてみようと思います。。
weyk による投稿:
ひょっとして、--with-aprと、--with-apr-utilの両方を明示的に指定する必要がある ということはありませんか?
試してみたところ、コンパイルが最後まで行えました。
最終的な手順としては、以下のようになります。
tar xvfz apr-1.3.6.tar.gz
cd apr-1.3.6
./buildconf
make
sudo make test
sudo make install
cd ..
tar xvfz apr-util-1.3.8.tar.gz
cd apr-util-1.3.8
./buildconf --with-apr=../apr-1.3.6
./configure --with-apr=/usr/local/apr/
make
sudo make test
sudo make install
cd ..
tar xvfz subversion-1.6.3.tar.gz
cd subversion-1.6.3
./configure --with-apr-util=/usr/local/apr/ --with-apr=/usr/local/apr/
make
sudo make install
おかげさまで解決しました。
ありがとうございました。
オフライン
その後、いくつか不具合が発覚しました。
- svn: unrecognized url scheme for "https://..."
- svn: SSL is not supported
Subversion のビルド時に neon と --with-ssl が足りていませんでした。
最終的には以下のようになります。
tar xvfz apr-1.3.6.tar.gz
cd apr-1.3.6
./buildconf
make
sudo make test
sudo make install
cd ..
tar xvfz apr-util-1.3.8.tar.gz
cd apr-util-1.3.8
./buildconf --with-apr=../apr-1.3.6
./configure --with-apr=/usr/local/apr/
make
sudo make test
sudo make install
tar xvfz neon-0.28.5.tar.gz
cd neon-0.28.5
./configure --with-ssl
make
sudo make install
cd ..
tar xvfz subversion-1.6.3.tar.gz
cd subversion-1.6.3
./configure --with-apr-util=/usr/local/apr/ --with-apr=/usr/local/apr/ --with-ssl
make
sudo make install
オフライン