
The list of packages installed on the machine mentioned above is listed [here|http://www.couchbase.com/wiki/display/couchbase/packages-installed-on-centos-5.4].
package installation instructions:
{code}
yum -y install gcc gcc-c++ automake autoconf make curl dmidecode openssl-devel ncurses ncurses-devel
{code}
h6. download and install curl (curl-7.21.4)
{code}
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 && make && make install
{code}
h6. download and install libevent (libevent-2.0.11)
{code}
wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz --no-check-certificate
tar -xvf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
./configure && make && make install
{code}
h6. download and install erlang R14B03
Erlang R14B03 \-\- please visit [http://erlang.org] for more information.
{code}
wget http://www.erlang.org/download/otp_src_R14B03.tar.gz
tar -xvf otp_src_R14B03.tar.gz
cd otp_src_R14B03
./configure --disable-option-checking 'CFLAGS=-O2 -g ' 'CXXFLAGS=-O2 -g ' --cache-file=/dev/null --srcdir=.
make
make install
{code}
h5. MacOS X
Many Couchbase developers use MacOS X as their primary development O/S. See the [OSX specific page|Building on OSX from source] for details.
h4. Python
Python is used by the couchbase command-line tools (at runtime).
h3. Inside the source package
You will first need to unarchive the source distribution file:
{code}
tar -xvzf couchbase{$ver}_src.tar.gz{code}
Once un-archived, the components that are included with the Couchbase source distribution include:
* memcached - core data networking server
* bucket_engine - multitenancy plug-in to memcached
* ep-engine - persistence plug-in to memcached
* libvbucket - library for elastic key hashing
* libconflate - library to allow moxi to support dynamic configuration
* moxi - proxy for memcached and couchbase
* membase-cli - command-line utiity
* ns_server - cluster management, monitoring and orchestration, with web UI console and REST administration API
* sigar & portsigar - system monitoring library
* couchdb - Apache CouchDB
* [memcachetest|http://github.com/ingenthr/memcachetest] \- a simple test utility for generating a large number of gets and sets
h3. Building Membase
Assuming you are building from the consolidated source tarball, you will simply extract the tarball, cd into the directory and execute "make". If you have dependent components such as libcurl in different locations, you may need to edit the Makefile slightly to use the correct paths at buildtime. See the troubleshooting section below. As couchdb isn't required for the 1.8 or earlier builds, when running make disable it (removes the spidermonkey dependency as well.)
* make DISABLE_COUCH=1
If instead you are building from individual components out of the source repository, you will need to generate the configure script and Makefile using autoconf and automake. In ns_server you will find a sample Makefile, "Makefile.all" which can assist with this.
h4. Troubleshooting The Build
When building couchbase, the most frequent issues encountered involve not having the correct dependencies or not having them in the right path at the right time.
Things to check:
* Is "erl" in your $PATH ?
h5. Other Troubleshooting
* Setting Special Locations
If you have libcurl in a different location, you may need to edit the source tarball Makefile to add the CFLAGS and LDFLAGS. For instance:
{code}LIBCONFLATE_CONFIGURE_FLAGS=$(CONFIGURE_FLAGS) CFLAGS=-I/var/tmp/curl/include LDFLAGS=-L/var/tmp/curl/lib{code}
* File Descriptor Settings
Couchbase starts a memcached process which allows up to 10,000 open connections. Therefore, it needs to be able to set it's number of open file descriptors to that amount. You will need to adjust the allowable number of file descriptors if you see this in the log: