mirror of https://gitee.com/bigwinds/arangodb
591 lines
18 KiB
Plaintext
591 lines
18 KiB
Plaintext
////////////////////////////////////////////////////////////////////////////////
|
|
/// @brief installation guide
|
|
//
|
|
/// @file
|
|
///
|
|
/// DISCLAIMER
|
|
///
|
|
/// Copyright 2012 triagens GmbH, Cologne, Germany
|
|
///
|
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
/// you may not use this file except in compliance with the License.
|
|
/// You may obtain a copy of the License at
|
|
///
|
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
///
|
|
/// Unless required by applicable law or agreed to in writing, software
|
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
/// See the License for the specific language governing permissions and
|
|
/// limitations under the License.
|
|
///
|
|
/// Copyright holder is triAGENS GmbH, Cologne, Germany
|
|
///
|
|
/// @author Dr. Frank Celler
|
|
/// @author Copyright 2012, triAGENS GmbH, Cologne, Germany
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- INSTALLATION MANUAL
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page InstallManual ArangoDB's Installation Manual (@VERSION)
|
|
///
|
|
/// @NAVIGATE_InstallManual
|
|
///
|
|
/// @if LATEX
|
|
/// <ul>
|
|
/// <li>@ref Installing</li>
|
|
/// <li>@ref Compiling</li>
|
|
/// </ul>
|
|
/// @else
|
|
/// @copydetails InstallingTOC
|
|
/// @copydetails CompilingTOC
|
|
/// @endif
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- INSTALLING
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page InstallingTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref Installing
|
|
/// <ul>
|
|
/// <li>@ref InstallingLinux
|
|
/// </li>
|
|
/// <li>@ref InstallingLinuxPackageManager
|
|
/// <ul>
|
|
/// <li>@ref InstallingCentOS
|
|
/// <li>@ref InstallingDebian
|
|
/// <li>@ref InstallingOpenSUSE
|
|
/// </ul>
|
|
/// </li>
|
|
/// <li>@ref InstallingMacOSX
|
|
/// <ul>
|
|
/// <li>@ref InstallingMacOSXHomebrew
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page Installing Installing ArangoDB
|
|
///
|
|
/// @EMBEDTOC{InstallingTOC}
|
|
///
|
|
/// @section InstallingLinux Linux
|
|
//////////////////////////////////
|
|
///
|
|
/// You can find binary packages for various Linux distributions here:
|
|
///
|
|
/// @LIT{http://www.arangodb.org/repositories/}
|
|
///
|
|
/// @subsection InstallingLinuxPackageManager Using a Package Manager to install ArangoDB
|
|
/////////////////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
/// @subsubsection InstallingCentOS CentoOS
|
|
///////////////////////////////////////////
|
|
///
|
|
/// Download and import GPG-PublicKey
|
|
///
|
|
/// @code
|
|
/// wget -O RPM-GPG-KEY-www.arangodb.org http://www.arangodb.org/repositories/PublicKey
|
|
/// rpm --import RPM-GPG-KEY-www.arangodb.org
|
|
/// @endcode
|
|
///
|
|
/// Add a repository file @LIT{/etc/yum.repos.d/arangodb.repo}
|
|
///
|
|
/// @code
|
|
/// [ArangoDB]
|
|
/// name=ArangoDB Repository for CentOS
|
|
/// failovermethod=priority
|
|
/// baseurl=http://www.arangodb.org/repositories/CentOS-6
|
|
/// enabled=1
|
|
/// gpgcheck=1
|
|
/// gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-www.arangodb.org
|
|
/// @endcode
|
|
///
|
|
/// Update the repository data:
|
|
///
|
|
/// @code
|
|
/// yum clean metadata
|
|
/// yum update
|
|
/// @endcode
|
|
///
|
|
/// Search for arangodb:
|
|
///
|
|
/// @code
|
|
/// yum search arangodb
|
|
/// @endcode
|
|
///
|
|
/// Install arangodb:
|
|
///
|
|
/// @code
|
|
/// yum install arangodb
|
|
/// @endcode
|
|
///
|
|
/// @subsubsection InstallingDebian Debian, Linux-Mint, and Ubuntu
|
|
//////////////////////////////////////////////////////////////////
|
|
///
|
|
/// Download and import GPG-PublicKey
|
|
///
|
|
/// @code
|
|
/// wget -O RPM-GPG-KEY-www.arangodb.org http://www.arangodb.org/repositories/PublicKey
|
|
/// apt-key add RPM-GPG-KEY-www.arangodb.org
|
|
/// @endcode
|
|
///
|
|
/// Add the corresponding repository in file @LIT{/etc/apt/sources.list}:
|
|
/// @code
|
|
/// deb http://www.arangodb.org/repositories Debian-6 main
|
|
/// @endcode
|
|
/// or
|
|
/// @code
|
|
/// deb http://www.arangodb.org/repositories LinuxMint-13 main
|
|
/// @endcode
|
|
/// or
|
|
/// @code
|
|
/// deb http://www.arangodb.org/repositories Ubuntu-11.10 main
|
|
/// @endcode
|
|
///
|
|
/// Update the repository data:
|
|
///
|
|
/// @code
|
|
/// aptitude update
|
|
/// @endcode
|
|
///
|
|
/// Now you should be able to search for arangodb:
|
|
///
|
|
/// @code
|
|
/// aptitude search arangodb
|
|
/// @endcode
|
|
///
|
|
/// In order to install arangodb:
|
|
///
|
|
/// @code
|
|
/// aptitude install arangodb
|
|
/// @endcode
|
|
///
|
|
/// @subsubsection Gentoo
|
|
/////////////////////////
|
|
///
|
|
/// Please use the
|
|
/// @EXTREF_S{https://github.com/mgiken/portage-overlay/tree/master/dev-db/ArangoDB,portage}
|
|
/// provided by @@mgiken.
|
|
///
|
|
/// @subsubsection InstallingOpenSUSE OpenSuSE
|
|
//////////////////////////////////////////////
|
|
///
|
|
/// Add the repository as follows:
|
|
///
|
|
/// @code
|
|
/// zypper addrepo -f -t YUM http://www.arangodb.org/repositories/openSUSE-12.1 ArangoDB
|
|
/// @endcode
|
|
///
|
|
/// Update the repository data:
|
|
///
|
|
/// @code
|
|
/// zypper refresh
|
|
/// @endcode
|
|
///
|
|
/// Search for arangodb:
|
|
///
|
|
/// @code
|
|
/// zypper search arangodb
|
|
/// @endcode
|
|
///
|
|
/// Install arangodb:
|
|
///
|
|
/// @code
|
|
/// zypper install arangodb
|
|
/// @endcode
|
|
///
|
|
/// @section InstallingMacOSX Mac OS X
|
|
//////////////////////////////////////
|
|
///
|
|
/// You can find the MacOSX packages here:
|
|
///
|
|
/// @LIT{http://www.arangodb.org/repositories/MacOSX}
|
|
///
|
|
/// @subsection InstallingMacOSXHomebrew Homebrew
|
|
/////////////////////////////////////////////////
|
|
///
|
|
/// If you are using <a href="http://mxcl.github.com/homebrew/">homebrew</a>,
|
|
/// then you can install the ArangoDB using @LIT{brew} as follows:
|
|
///
|
|
/// @code
|
|
/// brew install arangodb
|
|
/// @endcode
|
|
///
|
|
/// This will install the current stable version of ArangoDB and all dependencies within
|
|
/// your Homebrew tree. Note that the server will be installed as
|
|
///
|
|
/// /usr/local/sbin/arangod
|
|
///
|
|
/// The ArangoDB shell will be install as
|
|
///
|
|
/// /usr/local/bin/arangosh
|
|
///
|
|
/// If you want to install the latest version use:
|
|
///
|
|
/// @code
|
|
/// brew install --HEAD arangodb
|
|
/// @endcode
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- COMPILING
|
|
// -----------------------------------------------------------------------------
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page CompilingTOC
|
|
///
|
|
/// <ul>
|
|
/// <li>@ref Compiling
|
|
/// <ul>
|
|
/// <li>@ref CompilingAmazonMicroInstance
|
|
/// </li>
|
|
/// <li>@ref CompilingAIO
|
|
/// <ul>
|
|
/// <li>@ref CompilingAIOPrerequisites
|
|
/// </li>
|
|
/// <li>@ref DownloadSourceAIO
|
|
/// </li>
|
|
/// <li>@ref CompilingAIOConfigure
|
|
/// </li>
|
|
/// <li>@ref CompilingAIOCompile
|
|
/// </li>
|
|
/// <li>@ref CompilingAIOTest
|
|
/// </li>
|
|
/// <li>@ref CompilingAIOInstall
|
|
/// </li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// <li>@ref CompilingDevel
|
|
/// <ul>
|
|
/// <li>@ref CompilingDevelPrerequisites
|
|
/// </li>
|
|
/// <li>@ref DownloadSourceDevel
|
|
/// </li>
|
|
/// <li>@ref CompilingDevelSetup
|
|
/// </li>
|
|
/// <li>@ref CompilingDevelConfigure
|
|
/// </li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
/// </li>
|
|
/// </ul>
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
/// @page Compiling Compiling ArangoDB from scratch
|
|
///
|
|
/// The following sections describe how to compile and build the ArangoDB from
|
|
/// scratch. The ArangoDB will compile on most Linux and Mac OS X systems. It
|
|
/// assumes that you use the GNU C++ compiler to compile the source. The
|
|
/// ArangoDB has been tested with the GNU C++ compiler, but should compile with
|
|
/// any Posix compliant compiler. Please let us know, whether you successfully
|
|
/// compiled it with another C++ compiler.
|
|
///
|
|
/// There are possibilities:
|
|
///
|
|
/// - all-in-one: this version contains the source code of the ArangoDB, all
|
|
/// generated files from the autotools, FLEX, and BISON as well
|
|
/// as a version of V8, libev, and ICU.
|
|
///
|
|
/// - devel: this version contains the development version of the ArangoDB.
|
|
/// Use this branch, if you want to make changes to ArangoDB
|
|
/// source.
|
|
///
|
|
/// The devel version requires a complete development environment, while the
|
|
/// all-in-one version allows you to compile the ArangoDB without installing
|
|
/// all the prerequisites. The disadvantage is that it takes longer to compile
|
|
/// and you cannot make changes to the flex or bison files.
|
|
///
|
|
/// @EMBEDTOC{CompilingTOC}
|
|
///
|
|
/// @section CompilingAmazonMicroInstance Amazon Micro Instance
|
|
///////////////////////////////////////////////////////////////
|
|
///
|
|
/// @@sohgoh has reported that it is very easy to install ArangoDB on an
|
|
/// Amazon Micro Instance:
|
|
///
|
|
/// @code
|
|
/// > sudo yum install readline-devel
|
|
/// > ./configure
|
|
/// > make
|
|
/// > make install
|
|
/// @endcode
|
|
///
|
|
/// For detailed instructions the following section.
|
|
///
|
|
/// @section CompilingAIO All-In-One Version
|
|
////////////////////////////////////////////
|
|
///
|
|
/// @subsection CompilingAIOPrerequisites Basic System Requirements
|
|
///////////////////////////////////////////////////////////////////
|
|
///
|
|
/// Verify that your system contains:
|
|
///
|
|
/// - the GNU C++ compiler "g++" and standard C++ libraries
|
|
/// - the GNU make
|
|
///
|
|
/// In addition you will need the following library:
|
|
///
|
|
/// - the GNU readline library
|
|
/// - the OpenSSL library
|
|
///
|
|
/// Under Mac OS X you also need to install:
|
|
///
|
|
/// - Xcode
|
|
/// - scons
|
|
///
|
|
/// @subsection DownloadSourceAIO Download the Source
|
|
/////////////////////////////////////////////////////
|
|
///
|
|
/// Download the latest source using GIT:
|
|
///
|
|
/// @LIT{git clone git://github.com/triAGENS/ArangoDB.git}
|
|
///
|
|
/// @subsection CompilingAIOConfigure Configure
|
|
///////////////////////////////////////////////
|
|
///
|
|
/// Switch into the ArangoDB directory
|
|
///
|
|
/// @code
|
|
/// cd ArangoDB
|
|
/// @endcode
|
|
///
|
|
/// In order to configure the build environment execute
|
|
///
|
|
/// @code
|
|
/// ./configure --enable-all-in-one-v8 --enable-all-in-one-libev --enable-all-in-one-icu
|
|
/// @endcode
|
|
///
|
|
/// to setup the makefiles. This will check the various system characteristics
|
|
/// and installed libraries.
|
|
///
|
|
/// @subsection CompilingAIOCompile Compile
|
|
///////////////////////////////////////////
|
|
///
|
|
/// Compile the program by executing
|
|
///
|
|
/// @code
|
|
/// make
|
|
/// @endcode
|
|
///
|
|
/// This will compile the ArangoDB and create a binary of the server in
|
|
///
|
|
/// @code
|
|
/// ./bin/arangod
|
|
/// @endcode
|
|
///
|
|
/// @subsection CompilingAIOTest Test
|
|
/////////////////////////////////////
|
|
///
|
|
/// Check the binary by starting it using the command line.
|
|
///
|
|
/// @code
|
|
/// ./arangod --server.endpoint tcp://127.0.0.1:12345 --server.disable-authentication true /tmp/vocbase
|
|
/// @endcode
|
|
///
|
|
/// This will start up the ArangoDB and listen for HTTP requests on port 12345
|
|
/// bound to IP address 127.0.0.1. You should see the startup messages
|
|
///
|
|
/// @TINYEXAMPLE{startup1,startup message}
|
|
///
|
|
/// If it fails with a message about the database directory, please make sure the database
|
|
/// directory you specified (/tmp/vocbase in the above example) exists and can be written into.
|
|
///
|
|
/// Use your favorite browser to access the URL
|
|
///
|
|
/// @code
|
|
/// http://127.0.0.1:12345/version
|
|
/// @endcode
|
|
///
|
|
/// This should produce a JSON object like
|
|
///
|
|
/// @code
|
|
/// {"server" : "arango", "version" : "1.x.y"}
|
|
/// @endcode
|
|
///
|
|
/// as result.
|
|
///
|
|
/// Note that starting ArangoDB in this way will result in error messages being
|
|
/// displayed, because the paths are not yet set up. This will be corrected in
|
|
/// the next step.
|
|
///
|
|
/// @subsection CompilingAIOInstall Install
|
|
///////////////////////////////////////////
|
|
///
|
|
/// Install everything by executing
|
|
///
|
|
/// @code
|
|
/// make install
|
|
/// @endcode
|
|
///
|
|
/// You must be root to do this or at least have write permission to the
|
|
/// corresponding directories.
|
|
///
|
|
/// The server will by default be installed in
|
|
///
|
|
/// @code
|
|
/// /usr/sbin/arangod
|
|
/// @endcode
|
|
///
|
|
/// The configuration file will be installed in
|
|
///
|
|
/// @code
|
|
/// /etc/arangodb/arangod.conf
|
|
/// @endcode
|
|
///
|
|
/// The database will be installed in
|
|
///
|
|
/// @code
|
|
/// /var/arangodb
|
|
/// @endcode
|
|
///
|
|
/// The arango shell will be installed in
|
|
///
|
|
/// @code
|
|
/// /usr/bin/arangosh
|
|
/// @endcode
|
|
///
|
|
/// @section CompilingDevel Devel Version
|
|
/////////////////////////////////////////
|
|
///
|
|
/// @subsection CompilingDevelPrerequisites Basic System Requirements
|
|
//////////////////////////////////////////////////////////////////////
|
|
///
|
|
/// Verify that your system contains
|
|
///
|
|
/// - the GNU C++ compiler "g++" and standard C++ libraries
|
|
/// - the GNU autotools (autoconf, automake)
|
|
/// - the GNU make
|
|
/// - the GNU scanner generator FLEX, at least version 2.3.35
|
|
/// - the GNU parser generator BISON, at least version 2.4
|
|
/// - Python, version 2 or 3
|
|
///
|
|
/// In addition you will need the following libraries
|
|
///
|
|
/// - libev in version 3 or 4
|
|
/// - Google's V8 engine
|
|
/// - the GNU readline library
|
|
/// - the OpenSSL library
|
|
/// - the Boost test framework library (boost_unit_test_framework)
|
|
///
|
|
/// To compile Google V8 yourself, you will also need Python 2 and SCons.
|
|
///
|
|
/// Some distributions, for example Centos 5, provide only very out-dated
|
|
/// versions of FLEX, BISON, and the V8 engine. In that case you need to compile
|
|
/// newer versions of the programs and/or libraries.
|
|
///
|
|
/// Install or download the prerequisites
|
|
///
|
|
/// - Google's V8 engine (see http://code.google.com/p/v8)
|
|
/// - SCons for compiling V8 (see http://www.scons.org)
|
|
/// - libev (see http://software.schmorp.de/pkg/libev.html)
|
|
/// - OpenSSL (http://openssl.org/)
|
|
///
|
|
/// if neccessary. Most linux systems already supply RPM or DEP for
|
|
/// these packages. Please note that you have to install the
|
|
/// development packages.
|
|
///
|
|
/// @subsection DownloadSourceDevel Download the Source
|
|
///////////////////////////////////////////////////////
|
|
///
|
|
/// Download the latest source using GIT:
|
|
///
|
|
/// @code
|
|
/// git clone git://github.com/triAGENS/ArangoDB.git
|
|
/// @endcode
|
|
///
|
|
/// @subsection CompilingDevelSetup Setup
|
|
/////////////////////////////////////////
|
|
///
|
|
/// Switch into the ArangoDB directory
|
|
///
|
|
/// @code
|
|
/// cd ArangoDB
|
|
/// @endcode
|
|
///
|
|
/// The source tarball contains a pre-generated "configure" script. You can
|
|
/// regenerate this script by using the GNU auto tools. In order to do so,
|
|
/// execute
|
|
///
|
|
/// @code
|
|
/// make setup
|
|
/// @endcode
|
|
///
|
|
/// This will call aclocal, autoheader, automake, and autoconf in the correct
|
|
/// order.
|
|
///
|
|
/// @subsection CompilingDevelConfigure Configure
|
|
/////////////////////////////////////////////////
|
|
///
|
|
/// In order to configure the build environment execute
|
|
///
|
|
/// @code
|
|
/// ./configure --disable-all-in-one-v8 --disable-all-in-one-libev --disable-all-in-one-icu --enable-maintainer-mode
|
|
/// @endcode
|
|
///
|
|
/// to setup the makefiles. This will check for the various system
|
|
/// characteristics and installed libraries.
|
|
///
|
|
/// Now continue with @ref CompilingAIOCompile.
|
|
///
|
|
/// The following configuration options exists:
|
|
///
|
|
/// @LIT{\-\-enable-all-in-one-libev} tells the build system to use the
|
|
/// bundled version of LIBEV instead of using the system version.
|
|
///
|
|
/// @LIT{\-\-disable-all-in-one-libev} tells the build system to use the
|
|
/// installed system version of LIBEV instead of compiling the
|
|
/// supplied version from the 3rdParty directory in the make run.
|
|
///
|
|
/// @LIT{\-\-enable-all-in-one-v8} tells the build system to use the
|
|
/// bundled version of V8 instead of using the system version.
|
|
///
|
|
/// @LIT{\-\-disable-all-in-one-v8} tells the build system to use the
|
|
/// installed system version of V8 instead of compiling the
|
|
/// supplied version from the 3rdParty directory in the make run.
|
|
///
|
|
/// @LIT{\-\-enable-all-in-one-icu} tells the build system to use the
|
|
/// bundled version of ICU instead of using the system version.
|
|
///
|
|
/// @LIT{\-\-disable-all-in-one-icu} tells the build system to use the
|
|
/// installed system version of ICU instead of compiling the
|
|
/// supplied version from the 3rdParty directory in the make run.
|
|
///
|
|
/// @LIT{\-\-enable-maintainer-mode} tells the build system to use BISON and FLEX
|
|
/// to regenerate the parser and scanner files. If disabled, the supplied files
|
|
/// will be used so you cannot make changes to the parser and scanner files.
|
|
/// You need at least BISON 2.4.1 and FLEX 2.5.35.
|
|
/// This option also allows you to make changes to the error messages file,
|
|
/// which is converted to js and C header files using Python. You will need Python
|
|
/// 2 or 3 for this.
|
|
/// Furthermore, this option enables additional test cases to be executed in a
|
|
/// @LIT{make unittests} run. You also need to install the Boost test framework
|
|
/// for this.
|
|
///
|
|
/// @LIT{\-\-enable-arangob} tells the build system to also build the arangob
|
|
/// benchmark tool. The binary will be built in the bin subdirectory.
|
|
///
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// --SECTION-- END-OF-FILE
|
|
// -----------------------------------------------------------------------------
|
|
|
|
// Local Variables:
|
|
// mode: c++
|
|
// mode: outline-minor
|
|
// outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
|
|
// End:
|