Проблемы с установкой CouchDB 1.6 на Ubuntu 15.10

После использования CouchDB 1.4 в Ubuntu 14.04 я недавно попытался начать все сначала с 15.10 и основным пакетом couchdb. Он установил couchdb 1.6, что было долгожданным изменением, но документация по установке Ubuntu на сайте дивана не была обновлена.

У меня немало проблем с его настройкой и запуском. Я запустил установку пакета 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? Как мне его запустить? Спасибо!

1 ответ

Решение

Ответ заключается в сценарии инициализации, который поставляется вместе с пакетом 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 vagrant и установил пакет couchdb, затем отредактировал /etc/couchdb/local.ini привязать httpd к другому IP-адресу и перезапустить сервис couchdb через /etc/init.d/couchdb restart

У меня все работало нормально

TL;DR использовать скрипт инициализации /etc/init.d/couchdb запустить / остановить и перезапустить couchdb

Другие вопросы по тегам