Compile dan Install MongoDB C++ driver di Ubuntu

Lama tak posting dan sekarang saya akan posting mengenai cara melakukan kompilasi source code MongoDB C++ driver. Driver ini digunakan oleh C++ untuk melakukan koneksi terhadap MongoDB. Karena MongoDB sedang booming akhir-akhir ini, maka saya pun mencoba untuk mempelajari MongoDB ini. Oke kita langsung saja melakukan proses penginstalan/pengcompile-an drivernya.
Pertama-tama yang kita butuhkan adalah menginstall beberapa library pendukung yang dibutuhkan.


$ sudo apt-get install libpcre++ libboost-all-dev libsasl2-2 libsasl2-dev sasl2-bin scons git git-core

Library-library yang diinstall di atas, berdasarkan library yang dibutuhkan oleh MongoDB untuk melakukan kompilasi driver C++-nya https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20CompileOkay lalu selanjutnya sekarang adalah mendowload source code drivernya dengan perintah:


$ cd
$ cd /home/usernamekamu/Downloads
$ git clone git@github.com:mongodb/mongo-cxx-driver.git

Penjelasan:
Pada perintah di atas untuk baris no 2, /home/usernamekamu/Downloads itu disesuaikan dengan posisi direktori di Linux kamu, contoh untuk punya saya maka akan menjadi /home/aim/Downloads.
Setelah perintah di atas dijalankan, tunggu git melakukan clone atau duplikat kode dari server ke Linux kita sampai selesai. Apabila telah selesai, maka akan ada folder mongo-cxx-driver.


$ ls
mongo-cxx-driver

Lalu sekarang tahap terakhirnya adalah melakukan kompilasi source code dari drivernya.


$ sudo mkdir /opt/mongo-client-install
$ cd mongo-cxx-driver
$ git checkout 26compat
$ sudo scons --prefix=/opt/mongo-client-install/ --ssl --use-sasl-client --sharedclient --full --use-system-all install-mongoclient

Penjelasan:
Pada perintah baris pertama, kita akan melakukan kompilasi driver C++-nya dan akan di install di direktory /opt/mongo-client-install, lalu pada baris no 3 disini saya mengganti branch dari drivernya menjadi 26compat. 26compat digunakan untuk membuat driver C++ berdasarkan driver versi stabil dan bukan versi development. Penjelasan dari situs kompile MongoDB adalah sebagai berikut:

Legacy Branch:
Use the legacy branch if:

  1. You want to help test the new C++ driver (version 1.0.0-rc0 is now available).
  2. You are experimenting with the C++ driver and do not need a production ready driver.
  3. You had been using 26compat (or the driver inside of the server source) and want to benefit from incremental improvements while having the same overall API.
git checkout legacy

26compat Branch:
Use the 26compat branch if:

  1. You need a production ready release of the C++ driver that is not under active development.
  2. You have existing code that used the driver from the server source and want it to continue working without modification.
  3. Note that the Scons targets have changed in the legacy branch. Please see Breaking changes between 26compat and legacy for details.
git checkout 26compat

Okay pastikan proses kompilasi berjalan dengan lancar dan tanpa error, apabila berhasil maka anda akan mendapatkan library MongoDB di folder /opt/mongo-client-install:


$ ls /opt/mongo-client-install
include lib

Untuk info lebih lanjut, silahkan baca cara installnya pada halaman berikut ini https://github.com/mongodb/mongo-cxx-driver/wiki/Download%20and%20Compile

Update

Setelah saya baca-baca melalui internet, ternyata ubuntu telah menyediakan library c++ untuk mongodb, silahkan lihat pada link berikut ini https://launchpad.net/ubuntu/precise/+package/mongodb-dev. Lalu sekarang untuk melakukan penginstalannya adalah cukup mudah hanya dengan menggunakan command apt-get yang telah disediakan oleh ubuntu:


$ sudo apt-get install libpcre++ libboost-all-dev libsasl2-2 libsasl2-dev sasl2-bin mongodb-dev libmongo-client-dev

Setelah berhasil terinstall, maka kita akan mempunyai library libmongoclient.a


$ ls /usr/lib/libmongoclient.a
/usr/lib/libmongoclient.a

Lalu untuk menggunakan library tersebut, maka kita membutuhkan library boost yang telah diinstall sebelumnya. Cara untuk menggunakannya


$ g++ project.cpp -pthread -lmongoclient -lboost_thread -lboost_system -lboost_regex -lssl -lcrypto -o project
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s