UbuntuへのMongoDBのインストール
MongoDB に登録するデータが UTF-8 で記述されている場合,Ubuntu のパッケージでは「UTF8 なしの SpiderMonky」がインストールされるため,使用不可。すなわち,SpiderMonkey と MongoDB を共にソースからコンパイルする必要がある。
既存のSpiderMonkey の削除
Ubuntu では内部的に SpiferMonkey を利用しており,これが UTF-8 をサポートしないため,予め削除しておく。
http://www.mongodb.org/display/DOCS/Building+Spider+Monkey に "Building Spider Monkey" の手順が示されており、Ubuntu における「既存の spider monkey」の削除手順およびインストール手順が示されている。
ここに "SpiderMonkey does not use UTF-8 by default, so we enable before building." と書かれている。
上記のページにしたがい,spider monkey の置き換えを行う。
$ dpkg -l | grep xulrunner ii xulrunner-2.0-mozjs 2.0+nobinonly-0ubuntu1 Spidermonkey Javascript engine $ dpkg -l | grep xulrunner ii xulrunner-2.0-mozjs 2.0+nobinonly-0ubuntu1 Spidermonkey Javascript engine $ sudo apt-get remove xulrunner-2.0-mozjs パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: gpsbabel libqt4-opengl libqt4-declarative libqgis1.4.0 libproj0 libgfortran3 libqt4-test libwxgtk2.8-0 linux-headers-2.6.38-8 libqt4-sql-mysql libboost-program-options1.42.0 phonon libxerces-c28 libqtwebkit4 libgps19 libogdi3.2 gpsbabel-doc libhdf5-serial-1.8.4 libboost-thread1.42.0 libgeos-3.2.0 libpcrecpp0 libqt4-help python-qt4 python-numpy python-sip libqtassistantclient4 libhdf4-0-alt libwxbase2.8-0 libgeos-c1 gdal-bin proj-data lesstif2 libqt4-sql phonon-backend-gstreamer linux-headers-2.6.38-8-generic libosmgpsmap2 libphonon4 libblas3gf proj-bin python-osmgpsmap libqt4-designer liblapack3gf libboost-filesystem1.42.0 libqt4-script libqt4-scripttools libboost-system1.42.0 libgdal1-1.6.0 libnetcdf6 libdmtx0a grass これらを削除するには 'apt-get autoremove' を利用してください。 以下のパッケージは「削除」されます: mongodb mongodb-clients mongodb-dev mongodb-server xulrunner-2..0-mozjs アップグレード: 0 個、新規インストール: 0 個、削除: 5 個、保留: 0 個。 この操作後に 50.1 MB のディスク容量が解放されます。 続行しますか [Y/n]? y (データベースを読み込んでいます ... 現在 285041 個のファイルとディレクトリがインストールされています。) mongodb を削除しています ... mongodb-dev を削除しています ... mongodb-server を削除しています ... arg: remove mongodb stop/waiting mongodb-clients を削除しています ... xulrunner-2.0-mozjs を削除しています ... man-db のトリガを処理しています ... ureadahead のトリガを処理しています ... $
おお! パッケージマネージャから入れていた mongodb まで削除されちまった!!
UTF-8 対応 SpiderMonkey のインストール
以下の手順における CFLAG の設定がポイント。
$ curl -O ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz $ tar zxvf js-1.7.0.tar.gz $ cd js/src $ export CFLAGS="-DJS_C_STRINGS_ARE_UTF8" $ make -f Makefile.ref $ export JS_DIST="/usr" $ sudo make -f Makefile.ref export
MongoDB のインストールに向けてディレクトリの準備
Synaptic パッケージマネージャ を利用して libboost1.42-all-dev をインストール。(← このパッケージでよいのか、自信なし)
最初にデータベースを設置するためのディレクトリを作成する。
mkdir /data mkdir /data/db
MongoDB のインストール
$ sudo apt-get install git-core build-essential scons $ git clone git://github.com/mongodb/mongo.git $ cd mongo $ git tag -l $ git checkout r2.1.0 $ sudo scons all $ sudo scons install (/usr/loca/bin 下にインストールされる)
pymongo のインストール
MongoDB への Python インタフェースである pymongo をインストール。
$ sudo easy_install pymongo Searching for pymongo Reading http://pypi.python.org/simple/pymongo/ Reading http://github.com/mongodb/mongo-python-driver Best match: pymongo 2.1.1 Downloading http://pypi.python.org/packages/source/p/pymongo/pymongo-2.1.1.tar.gz#md5=fa0e171cf2538b77215ccff4f4126edd Processing pymongo-2.1.1.tar.gz Running pymongo-2.1.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-NlOIPo/pymongo-2.1.1/egg-dist-tmp-_LmnVZ zip_safe flag not set; analyzing archive contents... Adding pymongo 2.1.1 to easy-install.pth file Installed /usr/local/lib/python2.7/dist-packages/pymongo-2.1.1-py2.7-linux-i686.egg Processing dependencies for pymongo Finished processing dependencies for pymongo
以上。