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

508 lines
15 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)
///
/// @if LATEX
/// <ul>
/// <li>@ref Installing</li>
/// <li>@ref Compiling</li>
/// </ul>
/// @else
/// @copydetails InstallingTOC
/// @copydetails CompilingTOC
/// @endif
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
/// @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.3
/// enabled=1
/// gpgcheck=1
/// gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-www.arangodb.org
/// @endcode
///
/// Update 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.0 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
/// @EXTRES{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 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 @CODE{brew} as follows:
///
/// @code
/// brew install arangodb
/// @endcode
///
/// This will install the current stable version of ArangoDB within
/// your Homebrew tree.
///
/// 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 boost
///
/// - 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 a
/// Amazon Micro Instance:
///
/// @code
/// > sudo yum install readline-devel
/// > ./configure
/// > make
/// > make install
/// @endcode
///
/// @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 libraries:
///
/// - the GNU readline library
/// - the GNU ncurses library in version 5 or 6
///
/// 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
///
/// @LIT{cd ArangoDB}
///
/// In order to configure the build environment execute
///
/// @LIT{./configure}
///
/// to setup the makefiles. This will check the various system characteristics
/// and installed libraries.
///
/// @subsection CompilingAIOCompile Compile
///////////////////////////////////////////
///
/// Compile the program by executing
///
/// @LIT{make}
///
/// This will compile the ArangoDB and create a binary of the server in
///
/// @LIT{./bin/arangod}
///
/// @subsection CompilingAIOTest Test
/////////////////////////////////////
///
/// Check the binary by starting it using the command line.
///
/// @LIT{./bin/arangod --server.http-port 12345 /tmp/vocbase}
///
/// This will start up the ArangoDB and listen for HTTP requests on port 12345
/// bound to any address. You should see the startup messages
///
/// @TINYEXAMPLE{startup1,startup message}
///
/// Use your favorite browser to access the URL
///
/// @LIT{http://localhost:12345/version}
///
/// This should produce a JSON object like
///
/// @LIT{\{"server":"arango"\,"version":"1.x.y"\}}
///
/// 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
///
/// @LIT{make install}
///
/// 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
///
/// @LIT{/usr/sbin/arangod}
///
/// The configuration file will be installed in
///
/// @LIT{/etc/arangodb/arangod.conf}
///
/// The database will be installed in
///
/// @LIT{/var/arangodb}
///
/// The arango shell will be installed in
///
/// @LIT{/usr/bin/arangosh}
///
/// @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
///
/// In addition you will need the following libraries
///
/// - libev in version 3 or 4
/// - Google's V8 engine
/// - the GNU readline library
/// - the GNU ncurses library in version 5 or 6
/// - boost header files, at least version 1.33
///
/// To compile Google V8 yourself, you will also need 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
///
/// - boost development package (see www.boost.org)
/// - Google's V8 engine (see code.google.com/p/v8)
/// - SCons for compiling V8 (see www.scons.org)
/// - libev (see software.schmorp.de/pkg/libev.html)
///
/// 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:
///
/// @LIT{git clone git://github.com/triAGENS/ArangoDB.git}
///
/// @subsection CompilingDevelSetup Setup
/////////////////////////////////////////
///
/// Switch into the ArangoDB directory
///
/// @LIT{cd ArangoDB}
///
/// 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
///
/// @LIT{make setup}
///
/// This will call aclocal, autoheader, automake, and autoconf in the correct
/// order.
///
/// @subsection CompilingDevelConfigure Configure
/////////////////////////////////////////////////
///
/// In order to configure the build environment execute
///
/// @LIT{./configure --disable-all-in-one --enable-bison --enable-flex}
///
/// to setup the makefiles. This will check for the various system
/// characteristics and installed libraries. If the configure scripts fail to
/// find the boost library, check that C++ is installed and working and that the
/// boost-devel package was successfully installed.
///
/// Specifying @LIT{disable-all-in-one} will tell the build system
/// to use the installed system versions of boost, V8, and libev
/// instead of compiling these libaries in the make run.
///
/// Now continue with @ref CompilingAIOCompile.
////////////////////////////////////////////////////////////////////////////////
// -----------------------------------------------------------------------------
// --SECTION-- END-OF-FILE
// -----------------------------------------------------------------------------
// Local Variables:
// mode: c++
// mode: outline-minor
// outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)"
// End: