除了在win7 x64上执行视图外,CouchDB安装正常

时间:2013-10-30 01:09:07

标签: windows erlang couchdb

  • 使用setup-couchdb-1.4.0_R16B01.exe在Windows 7 x64上全新安装Apache CouchDB

  • 可以毫无问题地访问蒲团

  • 可以以编程方式创建数据库并添加文档(包括视图)

  • 在执行视图时获取下面粘贴的错误(即使在Futon中执行最简单的默认非编辑临时map-reduce

    "map": "function(doc){ emit(null, doc); }"

    (在这种情况下,在浏览器弹出窗口中显示相同的错误文本)

这个错误对任何人都有意义吗?我应该在哪里开始调查?

注意:

  1. 路径c:/cygwin/relax/APACHE~1.0/src/couchdb/在我的机器上不存在......
  2. 我已经尝试卸载版本1.4.0并将其替换为1.3.0甚至更旧的1.2.0,但同样的问题始终存在。
  3. 错误讯息:

    {"error":"EXIT",
     "reason":"{{badmatch,\n
                {error,\n
                {enoent,\n
                [{erlang,open_port,\n
                    [{spawn,\n
                         \"c:/Program Files (x86)/Apache Software Foundation/CouchDB/lib/couch-1.4.0/priv/couchspawnkillable ./couchjs.exe ../share/couchdb/server/main.js\"},\n
                     [stream,{line,4096},binary,exit_status,hide]],\n
                    []},\n
                {couch_os_process,init,1,\n
                    [{file,\n
                         \"c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_os_process.erl\"},\n
                     {line,148}]},\n
                {gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,304}]},\n
                {proc_lib,init_p_do_apply,3,\n
                    [{file,\"proc_lib.erl\"},{line,239}]}]}}},\n
     [{couch_query_servers,new_process,3,\n
          [{file,\"c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_query_servers.erl\"},\n
           {line,477}]},\n
      {couch_query_servers,lang_proc,3,\n
          [{file,\"c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_query_servers.erl\"},\n
            {line,462}]},\n
      {couch_query_servers,handle_call,3,\n
          [{file,\"c:/cygwin/relax/APACHE~1.0/src/couchdb/couch_query_servers.erl\"},\n
           {line,334}]},\n  {gen_server,handle_msg,5,[{file,\"gen_server.erl\"},{line,585}]},\n
      {proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,239}]}]}"}
    

3 个答案:

答案 0 :(得分:15)

运行http://localhost:5984/_utils/verify_install.html的结果是什么?

当人们安装到禁用了ntfs 8.3 filename mangling的文件系统时,通常会发生此错误。各种“调整”和性能工具为您完成此操作而不了解后果。

最简单的修复是安装到没有空格的目录,例如c:\couchdb

奇怪的c:\ cygwin ...行出现了,因为构建了CouchDB&编译后,返回的错误消息包含相对于构建目录的文件名和行号,而不是您将来的安装目录。

此外,couchdb邮件列表是寻求支持的最佳位置(我读它: - )。

答案 1 :(得分:2)

noent错误意味着文件丢失。检查此文件是否存在:

c:/Program Files (x86)/Apache Software Foundation/CouchDB/lib/couch-1.4.0/priv/couchspawnkillable

由于某种原因,您的设置可能会导致安装失败。

答案 2 :(得分:1)

这是Erlang而不是CouchDB的问题。

Erlang(与CouchDB捆绑)仍在使用8.3短文件名格式(可能是由于向后兼容性),但在较新版本的Windows中,默认情况下会禁用8.3名称生成 [read more here]

我不建议启用8.3文件名来修复此问题(尽管可能),而是直接在C:\<foldername>下安装CouchDB(文件夹名称中没有任何空格)。