install build tools
install packages from cento5 5 repository
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
sudo yum install gcc gcc-c++ kernel-devel make ncurses-devel \
openssl-devel rpm-build python-setuptools python-devel \
git cyrus-sasl-devel openssl-devel libtool scons python-26
install automake 1.11.1 :
wget http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.bz2
tar -xvf automake-1.11.1.tar.bz2
cd automake-1.11.1
./configure
make
sudo make install
install libtool 2.4.2 :
install libtool
wget http://ftpmirror.gnu.org/libtool/libtool-2.4.2.tar.gz
tar -xvf libtool-2.4.2.tar.gz
cd libtool-2.4.2
./configure
make
sudo make install
install gcc and g++ 4.4
yum install gcc44 gcc44-g++ mv /usr/bin/gcc /usr/bin/gcc412 ln -s /usr/bin/gcc44 /usr/bin/gcc mv /usr/bin/g++ /usr/bin/g++412 ln -s /usr/bin/g++44 /usr/bin/g++
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/
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/
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
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
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