пятница, 16 сентября 2011 г.

Установка свежей CouchDB на Ubuntu

Проверенный и рабочий вариант установки CouchDB 1.2.0a на 64-разрядную Ubuntu 11.04.

Подготовим компьютер для установки CouchDB. В стандартном дистрибутиве, как правило, нет последних версий библиотек. Т.к. CouchDB написана на Erlang, для более эффективной её работы поставим новую версию Erlang'а.

Но прежде выполните в терминале команды (терминал в Ubuntu вызывается через меню Рабочего стола или по горячим клавишам Ctrl+Alt+T)
~$ sudo apt-get install aptitude
~$ sudo aptitude install git subversion

Будет поставлена программа, заменяющая собой устаревшую apt-get, и клиенты git и subversion для получения новых версий программ из Интернета.

Ожидаю, Вы знаете как создавать папки и файлы в Linux и умеете пользоваться текстовым редактором (например, nano). Если знакомы с двухпанельным файловым менеджером, установите для Linux Midnight Commander, выполнив в терминале
~$ sudo aptitude install mc


Устанавливаем Erlang

Скачиваем с сайта последнюю версию > erlang.org/download.html
Здесь устанавливается R14B03.
Разархивируем. В терминале это будет выглядеть так
~$ tar -zxvf НазваниеАрхива.tar.gz
Заходим в папку с разархивированным Erlang.
~$ cd НазваниеАрхива
Erlang требует дополнительные библиотеки. Получаем обязательные.
~$ sudo aptitude install ncurses-dev
Не все возможности Erlang будут активны, если не установлены все библиотеки. Поставим некоторые.
~$ sudo aptitude install openssl libssl-dev
Собираем и устанавливаем Erlang. Это, конечно, не сборка Thunderbird (у меня на Core 2 Duo / 2.6 GHz / 4 Gb этот почтовый клиент собирался полтора часа!), но, всё же, запаситесь терпением :)
~$ ./configure
~$ make
~$ sudo make install


Вместе с последней версией Erlang'a неплохо было бы поставить последнюю версию SpiderMonkey (интерпретатор JavaScript), но CouchDB пока с ним не дружит (по крайней мере, на 64-битовой Ubuntu 11.04): обзор баз работает, но запросы не проходят (см. ниже описание ошибку "OS Process Error"). Поэтому воспользуемся рекомендациями из руководства по установке CouchDB.


Устанавливаем CouchDB

Устанавливаем обязательные зависимости.
~$ sudo aptitude build-dep couchdb
~$ sudo aptitude install libmozjs-dev libicu-dev \
    libcurl4-gnutls-dev libtool
Получаем из репозитория последнюю версию CouchDB, собираем, устанавливаем.
~$ svn co http://svn.apache.org/repos/asf/couchdb/trunk couchdb
~$ cd couchdb
~$ ./bootstrap
~$ ./configure
~$ make
~$ sudo make install
Создаём нового пользователя для работы с CouchDB, задаём права доступа на папки.
~$ sudo useradd -d /usr/local/var/lib/couchdb
~$ sudo chown -R couchdb: /usr/local/var/lib/couchdb \
    /usr/local/var/log/couchdb \
    /usr/local/var/run/couchdb
~$ sudo chmod -R 764 /usr/local/var/lib/couchdb \
    /usr/local/var/log/couchdb \
    /usr/local/var/run/couchdb
~$ sudo chown -R root:couchdb /usr/local/etc/couchdb
~$ sudo chmod 664 /usr/local/etc/couchdb/*.ini
~$ sudo chmod 775 /usr/local/etc/couchdb/*.d
Запускаем CouchDB.
~$ sudo /usr/local/etc/init.d/couchdb start
Пусть CouchDB стартует сама при загрузке Ubuntu.
~$ cd /etc/init.d
~$ sudo ln -s /usr/local/etc/init.d/couchdb
~$ sudo update-rc.d couchdb defaults
Проверяем, что CouchDB работает.
~$ curl http://127.0.0.1:5984
В терминале должны получить ответ
{"couchdb":"Welcome","version":"1.2.0a"}
Если необходимо, открываем доступ к серверу CouchDB по сети, редактируем файл конфигурации
~$ nano /usr/local/etc/couchdb/local.ini

Чтобы слушать все входящие соединения добавляем в конфигурацию строку
bind_address = 0.0.0.0

А если на сервере включен Firewall, в терминале пишем
~$ sudo iptables -I INPUT 3 -p tcp --dport 5984 -j ACCEPT

После выполнения этих команд перезапускаем CouchDB
~$ sudo /usr/local/etc/init.d/couchdb restart


Мне нравится, когда базы данных хранятся на отдельном разделе (а ещё лучше - на отдельном диске). Поэтому к сказанному выше я меняю путь к базам CouchDB в /usr/local/etc/couchdb/default.ini на монтируемый раздел. Не забудьте предоставить права для записи, иначе при попытке работать с CouchDB будут появляться далеко не очевидные ошибки от Erlang'а.


Всё. У Вас на компьютере установлена замечательная система, которая уже сейчас вполне может заменить трёх китов слонов Интернета: Apache, PHP, MySQL. Меньше слонов - меньше ошибок, легче сопровождение, больше свободного времени. На каком языке с ней общаться? Достаточно знать выучить JavaScript. Открывайте браузер по адресу http://127.0.0.1:5984/_utils , настраивайте свою любимую IDE (на днях напишу пример настройки IDE Eclipse) и... успехов! :)


Для начала работы с CouchDB посмотрите

И весёлый музыкальный ролик от создателей этой системы (если Вы хоть чуточку на слух воспринимаете английский).




Возможные ошибки при установке CouchDB и пути их решения

При запуске ./configure для CouchDB не находится SpiderMonkey. Установите SpiderMonkey руководствуясь этой инструкцией > wiki.apache.org/couchdb/Installing_SpiderMonkey
CouchDB не компилируется / не устанавливается. Проверьте версии CouchDB / Ubuntu и попробуйте другие варианты установки > wiki.apache.org/couchdb/Installing_on_Ubuntu
 
При запросе к базе CouchDB - view, show, list и т.п. - вместо результата лог-файл наполняется сообщениями "OS Process Error {os_process_error,{exit_status,127}}". SpiderMonkey установлен не правильно. Ошибка чаще всего возникает на Ubuntu. Проверьте себя на wiki.apache.org/couchdb/Installing_on_Ubuntu

Для ошибок сообщество CouchDB ведёт отдельную страницу > wiki.apache.org/couchdb/Error_messages


^

Комментариев нет: