download and build couchbase server 2.0 dependencies.
In this step we assume that you use prefix=/opt/couchbase and current user has permission to access /opt/couchbaseh4. build and install curl
wget http://curl.haxx.se/download/curl-7.21.4.tar.gz tar -xvf curl-7.21.4.tar.gz cd curl-7.21.4 ./configure --prefix=/opt/couchbase --without-ssl --disable-shared --disable-ldap --disable-ldaps --without-libidn CFLAGS="-O2 -g" LD_RUN_PATH=/opt/couchbase/lib make LD_RUN_PATH=/opt/couchbase/lib make install
build and instal libevent
wget https://github.com/downloads/libevent/libevent/libevent-2.0.11-stable.tar.gz
tar -xvf libevent-2.0.11-stable.tar.gz
cd libevent-2.0.11-stable
./configure --prefix=/opt/couchbase --disable-openssl CFLAGS="-O2 -g"
make
make install
h4. build and install v8 mkdir -p /opt/couchbase/include mkdir -p /opt/couchbase/lib git clone git://github.com/couchbase/v8 git checkout 3.9.7 scons -j 8 arch=x64 mode=release snapshot=on library=shared visibility=default cp libv8.* /opt/couchbase/lib cp include/* /opt/couchbase/include echo "447decb75060a106131ab4de934bcc374648e7f2" > /opt/couchbase/lib/libv8.ver
build and install icu4c
git clone git://github.com/couchbase/icu4c cd icu4c cd source && ./configure "--prefix=/opt/couchbase" cd .. make -C source install
build and instal gperftools(tcmalloc)
wget http://gperftools.googlecode.com/files/gperftools-2.0.tar.gz tar -xvf gperftools-2.0.tar.gz cd gperftools-2.0 ./configure --prefix=/opt/couchbase --disable-static --enable-minimal CFLAGS="-O2 -g" CXXFLAGS=-DTCMALLOC_SMALL_BUT_SLOW make libtcmalloc_minimal.la make install-exec-am install-data-am
build and install snappy
git clone git://github.com/couchbase/snappy cd snappy git reset --hard 5681dde156e9d07adbeeab79666c9a9d7a10ec95 ./configure --prefix=/opt/couchbase CFLAGS="-O2 -g " make LDFLAGS=" -no-undefined" make install
build and install sqlite
mkdir -p /opt/couchbase/lib/python
wget http://s3.amazonaws.com/couchbase-grommit/sqlite-3.7.2-all-src-1.zip
unzip sqlite-3.7.2-all-src-1.zip
cd sqlite-3.7.2-src
./configure --prefix=/opt/couchbase
make install
build and instal pysqlite with python 2.4
git clone git://github.com/couchbase/pysqlite.git
cd pysqlite
git clean -xfd
git reset --hard 0ff6e32ea05037fddef1eb41a648f2a2141009ea
python2.4 setup.py config -I /opt/couchbase/include -L /opt/couchbase/lib build
cd build/lib*
tar czf pysqlite2_24.tar pysqlite2
mv pysqlite2_24.tar /opt/couchbase/lib/python/
build and install pysqlite with python 2.6
cd pysqlite
git clean -xfd
git reset --hard 0ff6e32ea05037fddef1eb41a648f2a2141009ea
python2.6 setup.py config -I /opt/couchbase/include -L /opt/couchbase/lib build
cd build/lib*
tar czf pysqlite2.tar pysqlite2
mv pysqlite2.tar /opt/couchbase/lib/python/
h4. build and install ctypes
mkdir -p /opt/couchbase/lib/python
wget http://s3.amazonaws.com/couchbase-grommit/ctypes-1.0.2.tar.gz
tar -xvf ctypes-1.0.2.tar.gz
cd ctypes
python2.4 setup.py build
cd build/lib*
tar cf ctypes.tar ctypes _ctypes.so
mv ctypes.tar /opt/couchbase/lib/python/
h4. build and install otp
wget https://github.com/erlang/otp/archive/OTP_R14B04.tar.gz
wget https://raw.github.com/couchbase/couchbase-build-dependencies/master/centos/5/64-bit/otp_R14B02-ssl-server.patch
wget https://github.com/couchbase/couchbase-build-dependencies/blob/master/centos/5/64-bit/0001-OTP_R14B04-Fix-fd-leak-when-using-async-thread-pool.patch
wget https://github.com/couchbase/couchbase-build-dependencies/blob/master/centos/5/64-bit/0001-disable-usage-of-futex-syscall.patch
tar -xvf OTP_R14B04.tar.gz
cd otp-OTP_R14B04
git apply ../otp_R14B02-64bit.patch || true
git apply ../0001-disable-usage-of-futex-syscall.patch
git apply ../otp_R14B02-ssl-server.patch
LD_RUN_PATH=/opt/couchbase/lib ./otp_build autoconf
touch lib/wx/SKIP lib/megaco/SKIP
LD_RUN_PATH=/opt/couchbase/lib ./configure --prefix=/opt/couchbase --enable-smp-support --disable-hipe --disable-fp-exceptions CFLAGS="-O2 -g"
LD_RUN_PATH=/opt/couchbase/lib make
LD_RUN_PATH=/opt/couchbase/lib make install
h3. checkout Couchbase Server source code
mkdir couchbase
cd couchbase
repo init -u git://github.com/couchbase/manifest.git -m released/2.0.0.xml
repo sync
h3. build couchbase server
PRODUCT_VERSION=2.0.0 PATH=/opt/couchbase/bin:$PATH LD_RUN_PATH=/opt/couchbase/lib make PREFIX=/opt/couchbase AUTO_RECONFIG=1 \
'couchdb_EXTRA_OPTIONS=--with-erlang=/opt/couchbase/lib/erlang/usr/include \
--with-btree-implementation=native \
--with-v8-include=/opt/couchbase/include --with-v8-lib=/opt/couchbase/lib \
'couchdb_EXTRA_MAKE_OPTIONS=' 'libmemcached_EXTRA_OPTIONS=--disable-sasl' \
'memcached_EXTRA_OPTIONS=--with-libevent=/opt/couchbase LDFLAGS=-L/opt/couchbase/lib LIBS=-ltcmalloc_minimal' \
'ep-engine_EXTRA_OPTIONS=--with-libevent-prefix=/opt/couchbase' \
'moxi_EXTRA_MAKE_OPTIONS=LTLIBEVENT=/opt/couchbase/lib/libevent.a' all