お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2009-07-22 12:06:12

satosystems
メンバ
登録日: 2007-11-07

Subversion 1.6.3 のビルド時にコンパイルエラー

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)

オフライン

 

#2 2009-07-22 14:05:37

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: Subversion 1.6.3 のビルド時にコンパイルエラー

Jauntyで試してみましたが、問題なくコンパイルできました。ただし、libaprutil1-devはJaunty標準の1.2.12を使用しています。
上記の例ではapr、apr-utilともに自分でコンパイルしていますが、何か理由がありますか?
snbversionのINSTALLドキュメントには、特にバージョンの指定はないようですが。

また、launchpadをsubversion 1.6で検索すると
https://launchpad.net/~mdiers/+archive/svn16
があったりします。

オフライン

 

#3 2009-07-22 14:09:46

mizuno
管理者
From: Kyoto
登録日: 2007-02-28

Re: Subversion 1.6.3 のビルド時にコンパイルエラー

と、失礼。Wikiページにaprの最新版を入れろと書いてありますね。

オフライン

 

#4 2009-07-22 15:17:13

weyk
メンバ
登録日: 2009-04-03

Re: Subversion 1.6.3 のビルド時にコンパイルエラー

ぱっと見た限りでは、
-I/usr/include/apr-1.0   -I/usr/local/apr/include/apr-1
の順序が逆かもしくは、前者が指定されない状態じゃないと、混ざっちゃう気がしますね。

ひょっとして、--with-aprと、--with-apr-utilの両方を明示的に指定する必要がある ということはありませんか?

オフライン

 

#5 2009-07-22 16:19:41

satosystems
メンバ
登録日: 2007-11-07

Re: Subversion 1.6.3 のビルド時にコンパイルエラー

コメントありがとうございます。

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

おかげさまで解決しました。
ありがとうございました。

オフライン

 

#6 2009-07-29 17:41:58

satosystems
メンバ
登録日: 2007-11-07

Re: Subversion 1.6.3 のビルド時にコンパイルエラー

その後、いくつか不具合が発覚しました。

- 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

オフライン

 

Board footer

Powered by FluxBB