在Ubuntu 14.04上使用CouchDB 1.4之后,我最近试着用15.10和main couchdb包来重新开始。 它安装了couchdb 1.6这是一个可喜的变化,但在沙发上的ubuntu安装文档还没有更新。
我遇到了很多问题,并且正在运行。 我运行了apt-get install couchdb软件包安装并创build了一个couchdb用户和组。
看来,也许Ubuntu的回购没有安装在Ubuntu的couchdb文档相同的位置(这不是一个大问题),但它似乎也没有创build所有需要的文件夹,也没有设置正确的权限。
当我运行couchdb -b ,我得到了Apache CouchDB needs write permission on the PID file: /var/run/couchdb/couchdb.pid
另外(更多的信息),/ var / run / couchdb文件夹不会在安装时被创build,但是如果我创build它(和一些其他的),并将这些权限设置为couchdb:couchdb,向上。 然而,这不会永久性地执行,因为重启后pid文件被重置,我们又回到了原点。 作为一个方面说明,我也不知道是否所有必需的日志或其他文件夹安装时创build。 让我知道你是否注意到任何东西。
作为另一个信息,当我尝试运行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?不记得)。 有什么帮助吗?
当我通过创build随机文件夹和更改权限四处乱跑时,我可以closures,但是我无法获得最终的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 vagrant盒,并安装了couchdb软件包,然后编辑/etc/couchdb/local.ini将httpd绑定到不同的IP地址,并通过/etc/init.d/couchdb restart启动了couchdb服务
一切都为我工作得很好。
TL; DR使用init脚本/etc/init.d/couchdb来启动/停止并重新启动couchdb