1
0
Fork 0
arangodb/arangod/Documentation/install-manual.dox

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: