Недавнее задание, которое я должен был выполнить на своем домашнем компьютере с 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. Подводя итог:
я установил его, скомпилировав его из источника,
используя следующие шаги.
1. Скачать исходники CouchDB 1.5
2. Создайте пользователя и группу с именем couchdb. Это очень важно. Не компилируйте и не устанавливайте его с правами пользователя root. Если вы сделаете это с root, CouchDB не запустит и не запишет никаких сообщений об ошибках в какой-либо файл журнала, потому что CouchDB запустится с правами пользователя ‘couchdb’, но все установленные файлы и папки не разрешают доступ для чтения или записи любому другому пользователю, кроме ‘ корень. Если вы скомпилировали и установили его с правами пользователя root, вам необходимо самостоятельно настроить разрешения и права владельца различных файлов и папок. Я должен признать, что я сделал это с пользователем ‘root’ в первый раз, и мне потребовалось два часа, чтобы найти причины и все исправить. Так что будьте осторожны ?
3. Установите как минимум следующие пакеты.
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
4. Извлеките и скомпилируйте CouchDB, используя каталог установки по умолчанию / usr / local. Вы можете изменить его, используя другой префикс —prefix при вызове configure. Проверьте руководство.
cd /tmp && tar xvzf apache-couchdb-1.5.0.tar.gz cd apache-couchdb-* ./configure && make
5. Установите CouchDB. CouchDB устанавливается в / usr / local
sudo make install
6. Иногда необходимо удалить старые вещи из пакетов Ubuntu. Это не было необходимо в моем случае. Но вы можете сделать следующее:
sudo rm /etc/logrotate.d/couchdb /etc/init.d/couchdb
7. Установите сценарии инициализации и войдите в систему
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
8. Убедитесь, что CouchDB работает
curl http://127.0.0.1:5984/
Это должно дать вам вывод, как это:
{"couchdb":"Welcome","uuid":"5a23983ac768251e1c8d413bb52e67b5","version":"1.5.0","vendor":{"version":"1.5.0","name":"The Apache Software Foundation"}}
9. При такой настройке CouchDB прослушивает только на локальном хосте (127.0.0.1). Если вы хотите, чтобы CouchDB прослушивал все интерфейсы и обращался к нему извне, вы должны настроить его в /usr/local/etc/couchdb/local.ini
Просто найдите раздел [httpd] и раскомментируйте строку, начинающуюся с ‘bind_address’, и замените 127.0.0.1 на 0.0.0.0.
[httpd] ;port = 5984 bind_address = 0.0.0.0
10. Теперь перезапустите CouchDB, и все готово.
/etc/init.d/couchdb restart
Вы также можете установить версию CouchDB, созданную из источника, вместе с пакетом Ubuntu по умолчанию. Посмотрите пошаговое руководство, упомянутое выше, чтобы посмотреть, как это достигается.