После использования CouchDB 1.4 в Ubuntu 14.04 я недавно попытался начать с 15.10 и основного пакета couchdb. Он установил couchdb 1.6, что было долгожданным изменением, но документация по установке ubuntu на сайте couch не обновлялась.
У меня довольно много проблем с его запуском и запуском. Я запустил установку пакета apt-get install couchdb и создал пользователя и группу couchdb.
Похоже, что, возможно, репозиторий Ubuntu не устанавливает вещи в тех же местах, что и говорится в документации couchdb для ubuntu (что не такая уж большая проблема), но также, похоже, не создает все необходимые папки , ни установить правильные разрешения.
Когда я бегу couchdb -b
, Я получил Apache CouchDB needs write permission on the PID file: /var/run/couchdb/couchdb.pid
Отдельно (в качестве дополнительной информации) папка / var / run / couchdb не создается при установке, но если я создам ее (и пару других) и установлю для них разрешения на couchdb: couchdb, все начнется вверх. Однако это не делает это постоянно, поскольку файл pid сбрасывается после перезапуска, и мы возвращаемся к исходной точке. Кстати, я также не знаю, все ли необходимые журналы или другие папки создаются при установке. Дайте мне знать, если вы заметили что-нибудь там.
Еще одна информация: когда я пытаюсь запустить sudo -i -u couchdb couchdb
Я получил: sudo: unable to change directory to /usr/local/var/lib/couchdb: No such file or directory
Эта (usr / local) кажется правильной папкой из документации, но установки Ubuntu 15, похоже, не используют / usr / local, а в основном используют / etc / couchdb. Из-за этого немного сбивает с толку пытаться следовать всем документам.
Если я сбегу sudo -i -u couchdb couchdb
Я получил:
{"init terminating in do_boot",{{badmatch,{error,{bad_return,
{{couch_app,start,[normal,
["/etc/couchdb/default.ini","/etc/couchdb/local.ini"]]},{'EXIT',{{bad match,
{error,{error,enoent}}},[{couch_server_sup,start_server,1,
[{file,"couch_server_sup.erl"},{line,56}]},{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,273}]}]}}}}}},[{couch,start,0,
[{file,"couch.erl"},{line,18}]},{init,start_it,1,[]},{init,start_em,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
Это существенная ошибка. Я также иногда получаю ошибку прав доступа, брат или сестра (eecees? Не могу вспомнить). Это какая-нибудь помощь?
Когда я бегаю по сторонам, создавая случайные папки и меняя разрешения, я могу приблизиться, но не могу получить окончательный файл pid, чтобы сохранить правильные разрешения. Это единственная проблема, или мне следует опасаться установки 15.10 в целом? Может ли кто-нибудь помочь мне устранить ошибку разрешений pid? Как мне его запустить? Спасибо!
Ответ кроется в сценарии инициализации, который поставляется вместе со стандартным пакетом ubuntu.
/etc/init.d/couchdb
начиная со строки 83
start_couchdb () {
# Start Apache CouchDB as a background process.
mkdir -p "$RUN_DIR"
if test -n "$COUCHDB_USER"; then
chown $COUCHDB_USER "$RUN_DIR"
fi
command="$COUCHDB -b"
if test -n "$COUCHDB_STDOUT_FILE"; then
command="$command -o $COUCHDB_STDOUT_FILE"
fi
if test -n "$COUCHDB_STDERR_FILE"; then
command="$command -e $COUCHDB_STDERR_FILE"
fi
if test -n "$COUCHDB_RESPAWN_TIMEOUT"; then
command="$command -r $COUCHDB_RESPAWN_TIMEOUT"
fi
run_command "$command" > /dev/null
}
Я получил официальный бродячий ящик ubuntu 15.10 и установил пакет couchdb, затем отредактировал /etc/couchdb/local.ini
чтобы привязать httpd к другому IP-адресу и перезапустить службу couchdb через /etc/init.d/couchdb restart
У меня все заработало.
TL; DR используйте сценарий инициализации /etc/init.d/couchdb
для запуска / остановки и перезапуска couchdb