couchdb-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Couchdb Wiki] Update of "Installing_on_Windows" by DaveCottlehuber
Date Tue, 03 Jan 2012 01:21:30 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Couchdb Wiki" for change notification.

The "Installing_on_Windows" page has been changed by DaveCottlehuber:
http://wiki.apache.org/couchdb/Installing_on_Windows?action=diff&rev1=25&rev2=26

Comment:
oops

  
  <<TableOfContents>>
  
- = Warning =
+ The CouchDB project includes GNU autotools based scripts to build from source, ,a self-extracting
install package for Windows. However the project does not provide official binaries for its
distributions, as the official release artefact is the signed tar.gz bundle accessible from
Apache mirrors. We know this is not always the easiest solution for people, so community-provided
binaries are available below.
  
- CouchDB 1.0.x crashes on Windows when a database or index file reaches 4Gb in Erlang/OTP
versions previous to R14B01. This is due to a Erlang/OTP Windows bug related with appending
to files with a size equal to 4Gb or larger. Erlang/OTP release R14B01 no longer has this
bug.
+ Instructions on building from source are [[https://github.com/apache/couchdb/|available]],
as well as annotations for [[Building_from_source_on_Windows|older releases]].
  
- This page describes how to build and install couchdb from source on Windows.  See also the
[[Windows_binary_installer]].
+ == Supported / Tested Platforms ==
  
- = Windows Installer =
+ This installer has been tested on 64 and 32 bit versions of:
+  
+  * Windows Server 2008 both RTM and R2
+  * Windows 7 and Vista
+  * Windows Server 2003 and Windows XP
  
+ It is likely to work on most Windows versions released this century.
- There is a [[Windows binary installer]] in "beta testing". See the wiki page for it for
more instructions.
- 
- Other source of installers for Windows, including future CouchDB releases, are at
-   * https://github.com/juranki/couchdb/downloads
-   * https://github.com/dch/couchdb/downloads
- 
- = Building current couchdb versions =
- 
- As of couchdb 0.10, support for Windows is included in the standard build process.  View
[[http://svn.apache.org/viewvc/couchdb/trunk/README?view=co|README]] in the root of the source
tree for information about the dependencies and how to configure the build process.  In summary,
you will need to:
- 
-  * Install the cygwin environment.
- 
-  * Install the MS C compiler.
- 
-  * Install and possibly build a number of pre-requisites, such as curl, icu, spidermonkey,
etc.
- 
-  * get the sources to erlang and couch
- 
-  * configure and build erlang according to the instructions.
- 
-  * configure and build couch according to the [[http://svn.apache.org/viewvc/couchdb/trunk/README?view=co|README]]
file in couch
- 
- After executing 'make install', you will find a couchdb directory structure inside your
erlang directory - that is, the couch build process simply installs its libraries into the
erlang binaries you previously build.  This directory structure should be ready to roll -
it can be zipped up, packaged by an installer, etc.
- 
- = Older instructions =
- 
- These instructions are for couch versions pre 0.10
- 
- 
- CouchDB does not natively install on Windows but it is possible to install it by hand. '''Be
aware that many unit tests fail due to IO-related features that aren't supported by Erlang
on Windows.'''
- 
- Please update this guide as needed, we aim to collect feedback and roll the procedure into
the official build.
- 
- These instructions currently refer to paths as they'd be set up in a default installation
of Erlang OTP 5.7.1, with the couchDB distribution installed at
- 
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0
- }}}
  
  == Dependencies ==
  
- You will need the following software installed on your system:
+ None - the installer includes erlang, openssl, ICU, spidermonkey and everything else you
need including Microsoft Visual C++ runtimes.
  
+ == Current Versions ==
-   * [[http://www.erlang.org/download.html|Erlang/OTP]]
-   * C Compiler/Linker (such as [[http://gcc.gnu.org/|GCC]] or [[http://msdn.microsoft.com/en-us/visualc/default.aspx|Visual
C++]])
-   * Make (such as [[http://www.gnu.org/software/make/|GNU Make]] or [[http://msdn.microsoft.com/en-us/library/dd9y37ha(VS.71).aspx|nmake]])
-   * [[http://www.openssl.org/|OpenSSL]]
-   * [[http://www.icu-project.org/|ICU]] (Tested with [[http://www.icu-project.org/download/4.0.html|binary
build of 4.2 release]].)
-   * [[http://www.mozilla.org/js/spidermonkey/|SpiderMonkey]]
  
- == Install CouchDB as an Erlang Library Directory ==
+  * '''couchdb-1.1.1''' - get an unofficial installer [[https://github.com/downloads/dch/couchdb/setup-couchdb-1.1.1_js185_otp_R14B03+fix-win32-crypto.exe|here]]
+  * '''couchdb-1.0.2''' - get an unofficial installer [[https://github.com/downloads/dch/couchdb/setup-couchdb-1.0.2+COUCHDB-963_otp_R14B01+OTP-9139.exe|here]]
+  * '''couchdb-master''' - snapshot builds rolled from "trunk" or "master" in git terms -
[[https://github.com/dch/couchdb/downloads|noteworthy snapshots]] and [[https://www.dropbox.com/s/jeifcxpbtpo78ak/Snapshots#view:list|bleeding
edge]].
  
- After installing Erlang you should having something similar to:
+ Other contributed versions for Windows are available at:
+   * http://people.apache.org/~mhammond/dist/
+   * https://github.com/juranki/couchdb/downloads/
+   * http://www.couchbase.org/get/couchbase-single/current
  
+ Use Firefox to run the CouchDB tests from Futon, to verify that your installation is successful,
by pointing your web browser to
+ [[http://127.0.0.1:5984/_utils/index.html]] and run the test suite.
- {{{
- C:\Program Files\erl5.7.1
- }}}
  
- Copy the whole CouchDB source tree to:
+ If you encounter any troubles, in {{{local.ini}}}, set the [log]
+ {{{level=debug}}} and begin investigating. Bug reports and patches are welcomed!
  
+ == Known Issues ==
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0
- }}}
  
- Make the following empty directories:
+ === CouchDB 1.1.1 ===
  
+  * none known
- {{{
- C:\Program Files\erl5.7.1\lib\mochiweb-0.01\ebin
- }}}
  
+ === CouchDB 1.0.2 ===
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0\ebin
- }}}
  
- == Provide ICU to Erlang ==
+ Currently there are a number of non-critical issues in 1.0.2 that you need to be aware of;
both have work-arounds documented in the JIRA comments. These are both resolved in CouchDB
1.1.1 and newer.
  
- From ICU copy `icu*.dll` (and `libeay32.dll` for older versions of ICU) to:
+  * [[https://issues.apache.org/jira/browse/COUCHDB-577|COUCHDB-577]] couchdb @ winxp: Simple
RegExp's can not be executed
+  * [[https://issues.apache.org/jira/browse/COUCHDB-963|COUCHDB-963]] while running CouchDB
as a service, the erlang erlsrv process dies periodically during restarting CouchDB (POST
/_restart fails) - either use the .bat version only, or apply the workarounds noted within
the ticket comments. An upstream fix will be in Erlang/OTP R14B03 and a work-around will be
in CouchDB 1.0.3 & later.
  
+ === CouchDB 1.0.1 ===
- {{{
- C:\Program Files\erl5.7.1\erts-5.7.1\bin
- }}}
  
- == Build SpiderMonkey ==
+ Note that CouchDB versions prior to 1.0.2 should not be used due to:
  
- The SpiderMonkey distribution's Windows build stuff is broken. See [[http://blog.endflow.net/?p=55&lang=en|this
blog post]] for a working js.mak file. Don't bother trying to import the project file into
a contemporary Visual Studio; just use the Visual Studio command line tools with the js.mak
file referred to above.
+  * 1 cross-site scripting security issue [[http://couchdb.apache.org/security.html|CVE-2010-3854]]
+  * 2 bugs that, in certain situations, could cause data loss [[https://issues.apache.org/jira/browse/COUCHDB-852|COUCHDB-852]]
and [[https://issues.apache.org/jira/browse/COUCHDB-844|COUCHDB-844]].
+  * Only on Windows, CouchDB 1.0.1 crashes on Windows when a database or index file reaches
4Gb in Erlang/OTP versions previous to R14B01. This is due to a Erlang/OTP Windows bug related
with appending to files with a size equal to 4Gb or larger. Erlang/OTP release R14B01 no longer
has this bug.
+  * A significant stability bug was resolved in Erlang/OTP R13B04 which caused CouchDB to
hang occasionally when run as a service.
  
- CouchDB uses a custom JavaScript driver, which provides unicode and buffering improvements.
In the !SpiderMonkey distribution, rename src/js.c to src/js.c.bak, and copy {{{C:\Program
Files\erl5.6.3\lib\couchdb-0.8.1\src\couchdb\couch_js.c}}} from the CouchDB distribution to
src/js.c in the !SpiderMonkey distribution. Before running nmake, edit the new js.c and change
{{{#include <jsapi.h>}}} to {{{#include "jsapi.h"}}}.
- 
- Once you've built js.exe and js32.dll, copy them both to
- 
- {{{
- C:\Program Files\erl5.7.1\erts-5.7.1\bin
- }}}
- 
- and rename js.exe to couch_js.exe.
- 
- ''Here are the binaries built according to the blog post: [[http://dl.getdropbox.com/u/118385/CouchDbBinaries/couchbd_spidermonkey_1.7_win32_32bit.zip|couchbd_spidermonkey_1.7_win32_32bit.zip]]
. Just unzip the contents to the bin directory.''
- 
- == Build couchdb/couch_erl_driver.c ==
- 
- This is a wrapper to provide ICU features to CouchDB.
- 
- ''Here is a binary (no worry! MS bleeding-edge technology proved!) built against ICU 4.2
in 32-bit Windows: [[attachment:couch_erl_driver.dll]]''
- 
- The simplest way to build a DLL is to create a Win32 DLL project in an IDE, add `couch_erl_driver.c`
into the project, and change project settings to include the Erlang ERTS and ICU4C header
paths. 
- 
- You must also include the various ICU `*.lib` files to the MSVC linker as inputs. MSVC doesn't
know how to create a DLL with unresolved names.  In Visual Studio 2008 this can be accomplished
by right clicking on the project, choosing properties, expanding the Linker node in the left
panel, selecting Input, and adding the following to the 'Additional Dependencies' field:
-  *icudt.lib 
-  *icuin.lib 
-  *icuio.lib 
-  *icule.lib 
-  *iculx.lib 
-  *icutu.lib 
-  *icuuc.lib 
- 
- The erlang include paths for this build for example were 
- 
- {{{
- C:\otp_src_R13B\erts\emulator\sys\win32 
- C:\otp_src_R13B\erts\emulator\beam
- }}}
- 
- Make the following empty directory:
- 
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0\priv
- }}}
- 
- Copy the DLL to:
- 
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0\priv\couch_erl_driver.dll
- }}}
- 
- == Erlang Compilation ==
- 
- Create a the following file:
- 
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0\src\Emakefile
- }}}
- 
- Add the following content:
- 
- {{{
- {'./couchdb/*', [{outdir,"../ebin"}]}.
- {'./mochiweb/*', [{outdir,"../../mochiweb-0.01/ebin"}]}.
- }}}
- 
- Launch `erl` (or `werl`) and execute the following command to change working directory:
- 
- {{{
- cd("C:/Program Files/erl5.7.1/lib/apache-couchdb-0.9.0/src").
- }}}
- 
- Execute this command to compile CouchDB:
- 
- {{{
- make:all().
- }}}
- 
- == Configuring ==
- 
- Copy the following file:
- 
- {{{
- C:\Program Files\erl5.7.1\lib\apache-couchdb-0.9.0\etc\couchdb\default.ini.tpl.in
- }}}
- 
- To this location:
- 
- {{{
- C:/Program Files/erl5.7.1/bin/default.ini
- }}}
- 
- or to this location:
- 
- {{{
- C:/Program Files/erl5.7.1/lib/couchdb-0.9.0/default.ini
- }}}
- 
- Edit the file to look something like this:
- 
- {{{
- [couchdb]
- database_dir = c:/data/couch
- view_index_dir = c:/data/couch
- util_driver_dir = C:/Program Files/erl5.7.1/lib/apache-couchdb-0.9.0/priv
- ConsoleStartupMsg=Apache CouchDB is starting.
- max_document_size = 4294967296 ; 4 GB
- max_attachment_chunk_size = 4294967296 ; 4GB
- os_process_timeout = 5000 ; 5 seconds. for view and external servers.
- max_dbs_open = 100
- 
- [httpd]
- port = 5984
- bind_address = 127.0.0.1
- authentication_handler = {couch_httpd, default_authentication_handler}
- WWW-Authenticate = Basic realm="administrator"
- 
- [log]
- file = c:/logs/couch.log
- level = info
- 
- [daemons]
- view_manager={couch_view, start_link, []}
- external_manager={couch_external_manager, start_link, []}
- db_update_notifier={couch_db_update_notifier_sup, start_link, []}
- query_servers={couch_query_servers, start_link, []}
- httpd={couch_httpd, start_link, []}
- stats_aggregator={couch_stats_aggregator, start, []}
- stats_collector={couch_stats_collector, start, []}
- 
- [httpd_global_handlers]
- / = {couch_httpd_misc_handlers, handle_welcome_req, <<"Welcome">>}
- favicon.ico = {couch_httpd_misc_handlers, handle_favicon_req, "C:/Program Files/erl5.7.1/lib/apache-couchdb-0.9.0/share/www"}
- 
- _utils = {couch_httpd_misc_handlers, handle_utils_dir_req, "C:/Program Files/erl5.7.1/lib/apache-couchdb-0.9.0/share/www"}
- _all_dbs = {couch_httpd_misc_handlers, handle_all_dbs_req}
- _active_tasks = {couch_httpd_misc_handlers, handle_task_status_req}
- _config = {couch_httpd_misc_handlers, handle_config_req}
- _replicate = {couch_httpd_misc_handlers, handle_replicate_req}
- _uuids = {couch_httpd_misc_handlers, handle_uuids_req}
- _restart = {couch_httpd_misc_handlers, handle_restart_req}
- _stats = {couch_httpd_stats_handlers, handle_stats_req}
- 
- [httpd_db_handlers]
- _design = {couch_httpd_db, handle_design_req}
- _temp_view = {couch_httpd_view, handle_temp_view_req}
- 
- [httpd_design_handlers]
- _view = {couch_httpd_view, handle_view_req}
- _show = {couch_httpd_show, handle_doc_show_req}
- _list = {couch_httpd_show, handle_view_list_req}
- 
- }}}
- 
- Make sure that the `database_dir` exists and that the `LogFile` can be created.
- 
- == Running ==
- 
- Launch `erl` (or `werl`) and execute the following command:
- 
- {{{
- couch_server:start().
- }}}
- 
- 
- If you encounter any trouble, set the log 'level' to 'debug' in default.ini
- 
- To check that everything has worked point your web browser to
- [[http://localhost:5984/_utils/index.html]] and run the test suite.
- 

Mime
View raw message