Недавнее задание, которое я должен был выполнить на своем домашнем компьютере с Ubuntu Linux под управлением 12.04. LTS должен был установить CouchDB . Мне это было нужно, потому что я хотел использовать ACRA в качестве инструмента удаленного оповещения об ошибках для Android-приложений. Acra — полностью открытый исходный код ( размещенный на GitHub ) и невероятно крутой инструмент, созданный Кевином Гаудином .
Раньше я пробовал это с помощью Iris Couch, но оказалось, что Iris Couch, использующий бесплатный аккаунт, мучительно медленный. Поэтому я решил разместить свой собственный CouchDB дома.
Репозитории Ubuntu не содержат обновленную версию Couch DB. Я попробовал это с помощью apt-get и получил CouchDB версии 1.0.1. Это был нереальный выбор, потому что я хотел использовать функцию репликации CouchDB, которая доступна только в версии выше 1.2.
Я нашел довольно хорошее пошаговое руководство в вики Apache CouchDB.
Подвести итог:
Я установил его, скомпилировав его из исходного кода, используя следующие шаги.
- Скачать исходники CouchDB 1.5
- Создайте пользователя и группу с именем ‘couchdb’. Это очень важно. Не компилируйте и не устанавливайте его с правами пользователя root. Если вы сделаете это с root, CouchDB не запустит и не запишет никаких сообщений об ошибках в какой-либо файл журнала, потому что CouchDB запустится с правами пользователя ‘couchdb’, но все установленные файлы и папки не разрешают доступ для чтения или записи любому другому пользователю, кроме ‘ корень. Если вы скомпилировали и установили его с правами пользователя root, вам необходимо самостоятельно настроить разрешения и права владельца различных файлов и папок. Я должен признать, что я сделал это с пользователем ‘root’ в первый раз, и мне потребовалось два часа, чтобы найти причины и все исправить. Так что будьте осторожны!
- Установите как минимум следующие пакеты.
123
sudo apt-get install -y g++
sudo apt-get install -y erlang-dev erlang-manpages erlang-base-hipe erlang-eunit erlang-nox erlang-xmerl erlang-inets
sudo apt-get install -y libmozjs185-dev libicu-dev libcurl4-gnutls-dev libtool
- Извлеките и скомпилируйте CouchDB, используя каталог установки по умолчанию / usr / local. Вы можете изменить его, используя другой префикс при вызове configure. Проверьте руководство.
123
cd /tmp && tar xvzf apache-couchdb-
1.5
.
0
.tar.gz
cd apache-couchdb-*
./configure && make
- Установите CouchDB. CouchDB устанавливается в / usr / local
1
sudo make install
- Иногда необходимо удалить старые вещи из пакетов Ubuntu. Это не было необходимо в моем случае. Но вы можете сделать следующее:
1
sudo rm /etc/logrotate.d/couchdb /etc/init.d/couchdb
- Установите сценарии инициализации и войдите в систему
123
sudo ln -s /usr/local/etc/logrotate.d/couchdb /etc/logrotate.d/couchdb
sudo ln -s /usr/local/etc/init.d/couchdb /etc/init.d
sudo update-rc.d couchdb defaults
- Убедитесь, что CouchDB работает
1
curl http:
//127.0.0.1:5984/
Это должно дать вам вывод, как это:
1{
"couchdb"
:
"Welcome"
,
"uuid"
:
"5a23983ac768251e1c8d413bb52e67b5"
,
"version"
:
"1.5.0"
,
"vendor"
:{
"version"
:
"1.5.0"
,
"name"
:
"The Apache Software Foundation"
}}
- При такой настройке CouchDB слушает только на локальном хосте (127.0.0.1). Если вы хотите, чтобы CouchDB прослушивал все интерфейсы и обращался к нему извне, вы должны настроить его в /usr/local/etc/couchdb/local.ini
Просто найдите раздел [httpd] и раскомментируйте строку, начинающуюся с ‘bind_address’, и замените 127.0.0.1 на 0.0.0.0.123[httpd]
;port =
5984
bind_address =
0.0
.
0.0
- Теперь перезапустите CouchDB, и все готово.
1
/etc/init.d/couchdb restart
Вы также можете установить версию CouchDB, созданную из источника, вместе с пакетом Ubuntu по умолчанию. Посмотрите пошаговое руководство, упомянутое выше, чтобы посмотреть, как это достигается.