Kazuhiko
kazuh****@fdiar*****
2014年 11月 7日 (金) 18:04:27 JST
かずひこです。 On 07/11/2014 08:45, Kouhei Sutou wrote: >> として、MroongaのビルドにMySQL/MariaDBの「ビルド済みの」ソースツリーが必 >> 要な理由って何かありますか? > > ビルド時に作られるけどインストールされない.hが必要だからです。 > >> 他のストレージエンジンはそのへんどうなっているのかな、と思って Sphinx SE >> のドキュメントを見てみたら、 >> http://sphinxsearch.com/docs/current.html#compiling-source-linux >> >> --with-mysql, which specifies where to look for MySQL include and >> library files, if auto-detection fails; >> >> とのことで、ソースツリーなしでビルドできるみたいですね。 > > へぇ、すごいですね。 > ソースを見ると > > #include "sql_class.h" > #include "sql_array.h" > > とかあるのにどうしているのかしら。 > MySQLはそいつらをインストールしないのに。 > MySQLは捨てているのかしら。 ああ、ちょっと勘違いしていました。ごめんなさい! Sphinx SEでのMySQL連携は二つあって、 ・Sphinxへのデータ入力のソースとしてMySQLのテーブルを使える ・Sphinxを使った検索の手段としてのMySQLストレージエンジン このうち、ソースツリーなしにビルドできるのは前者で、後者については http://sphinxsearch.com/docs/current.html#sphinxse-installing > in MySQL sources directory, create storage/sphinx directory in and copy all files in mysqlse directory from Sphinx sources there. Example: > > cp -R /root/builds/sphinx-0.9.7/mysqlse /root/builds/mysql-5.1.14/storage/sphinx > in MySQL sources directory, run > > sh BUILD/autorun.sh > configure MySQL and enable Sphinx engine: > > ./configure --with-plugins=sphinx > build and install MySQL: > > make > make install とあるので、 ・ソースは必要 ・configureも必要 ・でもMySQL全体のビルドは不要 のようですね。 configureが必要な理由が、たぶん須藤さんの言うMroongaでの「ビルド時に作ら れるけどインストールされない.hが必要」だからではないかと思いますが、 MroongaもMySQL全体のビルドではなく、configureだけで済んだりするでしょうか? >> Mroongaも、試してみたら、'mysql_config --include' に加えて >> (installed_dir)/include/mysql/private さえあれば、ビルド無しのソースツ >> リーどころか全くソースツリー無しでビルドできましたが、それはつまり、 >> 'mysql_config --include'に直接含まれないものが必要だから、ソースツリー >> (の下のsqlディレクトリ)が必要だ、ということでしょうか。 > > そのinclude/mysql/private/って使っていいものなんでしょうか? include/mysql/private/*.hの中身は、ビルドしたディレクトリのsql/*.hや include/*.hにあるものと同じようなのですが、使っていいかというとどうで しょうかね。'mysql_config --include'に含まれないんだからダメな気もしつ つ、だったら何故インストールされるの? とも思いつつ… かずひこ