Компиляция исходного кода Couchbase на сервере Debian 7

Couchbase – это открытая распределённая база данных NoSQL типа ключ-значение (key-value), доступная в двух вариантах: Enterprise Edition (EE) и Community Edition (CE). Как правило, EE выходит в свет после тестирования обновлений, исправления ошибок и подтверждения качества, а CE содержит последние доступные обновления еще до долгосрочной проверки (по сути, является самой современной версией Couchbase).

В данном руководстве речь пойдет о компилировании Couchbase из исходного кода. При этом будут использованы различные полезные инструменты, поставляющиеся с Linux по умолчанию. В основном руководство предназначено для пользователей Debian и подобных систем; однако, установив все перечисленные ниже инструменты, описанный здесь процесс можно повторить и на других дистрибутивах Linux. Обратите внимание: данное руководство также охватывает подготовку системы и установку необходимых сторонних инструментов.

Компилирование исходного кода

Сборка приложений в системах Unix сначала может показаться чрезвычайно сложным процессом; на самом же деле, все гораздо проще, чем кажется.  Конечно, существуют и другие инструменты для выполнения этой задачи, но в данном руководстве для сборки Couchbase будет использоваться утилита make. GNU make – одна из наиболее распространенных утилит, поскольку она встроена в системы Unix почти с самого ее появления, в конце 70х. Популярной она стала благодаря своему системно-независимому характеру и способности объединять команды и инструкции в единый файл, который называется makefile. Узнать об утилите make можно на этой странице.

Многие системные администраторы предпочитают компилировать программы из исходного кода, поскольку такой подход устраняет некоторые распространенные проблемы предварительно собранного ПО. Это также позволяет настроить процесс установки, установить несколько версий одного приложения в одну систему, а затем использовать нужную версию.

Контроль версий и Couchbase

Системы контроля версий используются для управления изменениями в файлах проекта, позволяя отслеживать их и их происхождение. Одной из самых популярных систем контроля версий является Git. Это распределенная система контроля версий, созданная для управления проектом самого ядра Linux (Linux Kernel), но также она используется во многих других проектах. Целевое приложение данного руководства, Couchbase, использует Github для размещения своего репозитория Git онлайн. В этом репозитории можно найти и скачать необходимую версию Couchbase; нужно просто загрузить копию исходного кода на локальную систему, а затем собрать его с помощью make.

Важные примечания

Разные дистрибутивы Linux поставляются с разными стандартными программными пакетами, необходимыми для управления системой.

Важно также помнить, что стандартный менеджер пакетов системы не будет знать о приложениях, скомпилированных из исходного кода. За их поддержку (обновление, модернизация и т.д.) отвечает вы.

Теперь можно приступать к установке программы!

Подготовка системы и установка зависимостей Couchbase

Для начала нужно обновить стандартный список пакетов Linux и добавить в базу инструментов следующие пакеты:

  • Git (система контроля версий);
  • Repo (бесплатный инструмент управления репозиториями, разработанный проектом Android);
  • Python (объектно-ориентированный язык программирования и его интерпретатор на основе С);
  • cURL (библиотека для загрузок и веб-запросов).

Чтобы обновить систему, запустите следующие команды:

sudo aptitude update
sudo aptitude upgrade

Установка приложения Repo

Примечание: http://source.android.com/source/downloading.html

Для размещения исполнительных файлов Repo нужен каталог bin. Чтобы создать такой каталог и добавить его в путь, запустите следующие команды:

mkdir ~/bin
PATH=~/bin:$PATH

Затем скачайте инструмент Repo при помощи cURL и используйте chmod, чтобы убедиться, что полученный файл является исполнительным:

curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

В зависимости от дистрибутива Couchbase могут понадобиться различные дополнительные библиотеки и приложения, в том числе, но не ограничиваясь:

  • automake, libtool, pkg-config, check, libssl-dev, sqlite3, libevent-dev, libglib2.0-dev, libcurl4-openssl-dev, erlang-nox, erlang-dev, erlang-src, ruby, libmozjs-dev (Debian), xulrunner-dev (Ubuntu), libicu-dev, libv8-dev, libcloog-ppl0, libsnappy-dev, python-minimal

Чтобы установить эти библиотеки в Debian и Ubuntu, запустите:

aptitude install -y --without-recommends build-essential automake libtool pkg-config check libssl-dev sqlite3 libevent-dev libglib2.0-dev libcurl4-openssl-dev erlang-nox curl erlang-dev erlang-src ruby libmozjs-dev libicu-dev libv8-dev libcloog-ppl0 libsnappy-dev
aptitude install -y --without-recommends git-core

Примечание для пользователей Ubuntu: поскольку в Ubuntu нет библиотеки libmozjs-dev, нужно установить библиотеку xulrunner-dev, выполнив для этого команду:

 aptitude install -y xulrunner-dev

Начало компилирования

Git

Прежде чем скачивать Couchbase с Github, нужно задать системе Git текущего пользователя. Для этого запустите:

git config --global user.email your@email.addr
git config --global user.name  your_name

Подготовка папок и загрузка кода Couchbase

На момент написания статьи последними доступными версиями Couchbase являются:

  • rel-2.1.1.xml, rel-2.2.0.xml, rel-2.2.1.xml, rel-3.0.0.xml

Код этих версий можно клонировать и скомпилировать.

Но сначала нужно подготовить каталог для загрузки и установки программы при помощи утилиты mkdir:

mkdir couchbase
cd couchbase

Теперь можно клонировать релиз Couchbase 2.1.1 с помощью инструмента Repo и команд init и sync:

repo init -u git://github.com/couchbase/manifest.git -m rel-2.1.1.xml
repo sync

Компилирование исходного кода

Выполнив предыдущие действия, можно приступать к сборке исходного кода при помощи make в Debian. Пользователям Ubuntu нужно сначала  связаться с библиотекой xulrunner.

Debian:

Просто запустите команду make:

make

Ubuntu:

Убедитесь в том, что библиотека xulrunner-dev была установлена и проверьте ее версию при помощи apt-cache, прежде чем связывать ее с make:

apt-cache policy xulrunner-dev

Используйте инструмент list с опциями ls –ld, чтобы узнать местонахождение xulrunner в папках /usr/include/ и /usr/lib/:

ls -ld /usr/lib/xulrunner-devel*
ls -ld /usr/include/xulrunner*

Затем соедините make с нужной версией xulrunner:

make couchdb_EXTRA_OPTIONS='--with-js-include=/usr/include/xulrunner-17.0 --with-js-lib=/usr/lib/xulrunner-devel-17.0/sdk/lib/'

Заключительные действия

Настройка лимитов системы для Couchbase

После удачной компиляции файлов нужно настроить лимиты системы:

ulimit -n 10240 ulimit -c unlimited

Запуск и настройка Couchbase

Теперь можно запустить сервер Couchbase при помощи полученных бинарных файлов, которые находятся в папке /bin:

./install/bin/couchbase-server

Кроме того, можно выполнить начальную настройку Couchbase. Для этого откройте веб-консоль, посетив порт 8091:

URL: http://IP _или_имя_хоста:8091

Устранение ошибок Couchbase

Чтобы ознакомиться с возможными ошибками и неисправностями Couchbase, а также найти способы их устранения, обратитесь к сайту проекта.

Чтобы получить более подробную информацию о сборке файлов Couchbase, посетите Git-репозиторий Couchbase.

Tags: , , , , , , , , , , ,

Добавить комментарий