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

以上。