TATEISHI Katsuyuki
kt****@wheel*****
2009年 8月 13日 (木) 23:42:04 JST
立石です。 From: Shinya TAKEBAYASHI <makot****@kanon*****> Subject: Re: [Ultramonkey-l7-develop 450] Re: RCファイルの置き場所 Date: Thu, 13 Aug 2009 22:28:11 +0900 >> > sslproxy と,使用するライブラリのバージョンは合わせたほうが >> > 良いかと思いまして. >> >> これは止めた方がいいと思います。 >> 非RPMなソフトウェアへの依存を増やすのは避けたい、というのが >> その理由です。 > > 意図はわかります. > こちらとしても最初から RPM 版の boost で統一したかったのですが, > sslproxy で asio を使っている関係で,今まではやむを得ず > 1.36 以上としていましたので. ・・・あれ? もしかして ultramonkey-l7 のほうも 1.36 以上ってことだったん ですかね? と思ったら、やっぱそうですか。 http://sourceforge.jp/projects/ultramonkey-l7/docs/uml7-install_manual_2.1.2-2_ja/ja/2/uml7-install_manual_2.1.2-2_ja.txt すみません。完全に勘違いしてました。 私の認識だと、ultramonkey-l7 は boost は RPM 版のを使えば OK だと思ってました。 # 2.1.2-x の途中から変わったみたい? # http://sourceforge.jp/docman2/DiffDocument.php?document_content_id=78641&to=2&from=1&group_id=1951 が、よく調べてみると、2.1.2-2 も 1.33 を使ってたみたいですよ (後述) >> sslproxy は OpenSSL へのインターフェースを boost 経由(asio)で >> 使ってるようなのですが、これは boost-1.33.1 には存在しないよ >> うです。つまり sslproxy をインストールしようと思ったら非RPM >> の boost (READMEなどに記載されているのは 1.36.0 以上) を入れ >> る必要があります。結果として boost を ultramonkey-l7 と >> sslproxy で統一しようとすると、sslproxy に合わせなければなり >> ません。 > > その見方でいくと,パッケージが違うので必要なライブラリの > バージョンが違っても,変ではない気がしてきました. > > ただ,対応させるバージョンを落とすにあたって気がかりなのが, > url モジュールや pfilter モジュールです. > > 内部で boost::regex をダイナミックリンクして使っているので, > もし 1.33 でいくとしたら多少検証稼働を増やさないといけません. > > 1.34 - 1.36 の changelog を見た感じだと,regex には変更はありませんが > xpressive でアップデートがあるようです. > # -DUSE_BOOST_XPRESSIVE すると,regex ではなく,テンプレートでできた > # boost::xpressive を使いに行きます > > 隠れた機能なんですけどね,あるので一応みておかないといけません. ちょっと気になったんで最近つくった環境をチェックしてみたんで すが、2.1.2-2の rpm に含まれてるバイナリは RPM のほうの libboost_regex とリンクしちゃってますな・・・(上に書いた件) ============================================================ [root @ um02 ~]# rpm -qi ultramonkey-l7 Name : ultramonkey-l7 Relocations: (not relocatable) Version : 2.1.2 Vendor: (none) Release : 2 Build Date: Wed May 13 10:00:00 2009 Install Date: Tue May 26 11:08:35 2009 Build Host: shared-rhel50-x8664.um.ha.oss.ntt.co.jp Group : Network Source RPM: ultramonkey-l7-2.1.2-2.src.rpm Size : 1312493 License: LGPL Signature : (none) Packager : Shinya TAKEBAYASHI Summary : The Layer-7 Virtual Server Description : Layer-7 load balancer daemon [root @ um02 ~]# ldd /usr/lib64/l7vs/protomod_pfilter.so librt.so.1 => /lib64/librt.so.1 (0x00002b1feebcd000) libboost_regex.so.2 => /usr/lib64/libboost_regex.so.2 (0x00002b1feedd6000) libdl.so.2 => /lib64/libdl.so.2 (0x00002b1fef081000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b1fef286000) libc.so.6 => /lib64/libc.so.6 (0x00002b1fef494000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b1fef7ea000) /lib64/ld-linux-x86-64.so.2 (0x0000003648000000) libicui18n.so.36 => /usr/lib64/libicui18n.so.36 (0x00002b1fefa06000) libicuuc.so.36 => /usr/lib64/libicuuc.so.36 (0x00002b1fefd4a000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00002b1ff007e000) libm.so.6 => /lib64/libm.so.6 (0x00002b1ff037f000) libicudata.so.36 => /usr/lib64/libicudata.so.36 (0x00002b1ff0602000) ============================================================ たぶん ultramonkey-l7 のビルドはリンカのオプションとして -lboost_regex ではなく、 SSLProxy のように -lboost_regex-gcc41-mt を渡さないといけないはずです。 もちろんこれは boost-1.36.0 も入ってる環境の話です。同じマシ ンの sslproxy は ちゃんと 1.36.0 の boost_regex に ・・・いや boost_regex にリンクされてないですねw (boost_regexを使い始めたのは次期リリース以降みたいです) まぁとにかく 1.36.0 の boost 関係のライブラリにリンクされてる のが分かります。 ============================================================ [root @ um02 ~]# ldd /usr/sbin/sslproxy liblog4cxx.so.10 => /usr/local/lib/liblog4cxx.so.10 (0x00002b3b4405e000) librt.so.1 => /lib64/librt.so.1 (0x0000003649400000) libssl.so.6 => /lib64/libssl.so.6 (0x0000003655600000) libboost_system-gcc41-mt-1_36.so.1.36.0 => /usr/local/lib/libboost_system-gcc41-mt-1_36.so.1.36.0 (0x00002b3b44455000) libboost_thread-gcc41-mt-1_36.so.1.36.0 => /usr/local/lib/libboost_thread-gcc41-mt-1_36.so.1.36.0 (0x00002b3b44658000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003678800000) libm.so.6 => /lib64/libm.so.6 (0x0000003648800000) (以下略) ============================================================ というわけで、前回リリース前の検証で(意図せずかもしれません が) ultramonkey-l7 は boost-1.33 で動作確認しちゃってるよう です。 >> 使うだけの立場からすると、非 RPM なソフトウェアへの依存が少な >> いほうがうれしいので、せっかく RPM 版 boost で動いている >> ultramonkey-l7 を非 RPM 版 boost に依存させるのは反対です。 >> >> たしかにライブラリのバージョンが統一されていないのは気持ち悪 >> いですが・・・ > > 上で書きましたが,UM-L7 と sslproxy は別のパッケージなので > これは変ではないように思えてきました. > > > この辺りの整理,他の方はどうでしょう. > 竹林としては,立石さんの意向を受け入れ,各プロダクトで > 必要とする boost ライブラリの最低バージョンは > > ・sslproxy : 1.36 以上 > ・UM-L7 : 1.33 以上 > > としても良いと考えますが. UM-L7 は 2.1.2-2 でも実際にリンクされてるのは boost-1.33 だっ たみたいですし、上記でいいと思います。 なお、補足すると、今回 SSLProxy は今のところ確認がとれている のは boost-1.37 以上になります。 -- TATEISHI Katsuyuki <kt****@wheel*****>