如何在Debian7VPS上使用Git和Make从源代码安装Couchbase

来自菜鸟教程
跳转至:导航、​搜索

介绍


Couchbase 是一个开源的、基于分布式键值的 NoSQL 数据库。 它有两种版本:企业版 (EE)社区版 (CE)Enterprise Edition 通常在测试和 QA 流程之后首先发布新的更新和错误修复,是 Couchbase 的最新版本。 紧随其后,社区版随即发布。

在本 DigitalOcean 指南中,我们将讨论从源代码安装(编译)的工作原理。 我们将使用(应该)随您选择的 Linux 发行版提供的各种工具。 在这里,我们特别针对基于 Debian 的系统。 但是,在简单安装下面列出的其他项目后,您应该能够按照其余部分来实现我们从源代码安装 Couchbase 的目标。 本文还介绍了必要的外部工具的安装。

从源安装

在 Unix 系统上构建应用程序对某些人来说可能看起来很可怕,但通常比您想象的要容易。 尽管应该注意还有其他工具可以完成相同的任务,但我们将在此处使用 GNU make 来构建 Couchbase。 GNU make 是最广泛使用的实用程序之一,因为自 70 年代末推出以来,它已被内置到 Unix 系统中。 它因其独立于系统的特性以及将命令和指令组合到单个文件中的能力而变得非常流行,这些文件被称为 makefiles。 有关 make 的更多信息,请访问 http://en.wikipedia.org/wiki/Make_(software)。

许多系统管理员选择从源代码构建软件,因为它可以帮助解决由 deb/rpm(预制)包引起的问题。 它还允许您自定义安装过程,在单个系统上拥有同一应用程序的多个版本,并使用所需的版本而无需担心预构建的二进制文件(编译文件)。

版本控制和 Couchbase

版本控制系统 用于管理对项目文件的更改,使您能够跟踪它们及其来源。 其中最流行的一种叫做 Git。 它是一个 分布式 版本控制系统,用于管理 Linux Kernel 项目本身。 由于广泛流行,它被许多其他人使用。 我们的目标应用程序 Couchbase 使用 Github 在线托管其 Git 存储库。 从那里,我们 checkout 一个分支(Couchbase 的一个版本)开始工作。 签出将在我们的本地系统上下载源代码副本,然后我们将使用 make 构建它。

要记住

不同的 Linux 发行版带有管理系统所需的不同默认软件包。 同样重要的是要记住,系统的默认包管理器不会知道以这种方式安装的应用程序。 维护它们(更新、升级等)的责任仍由您承担。

说了这么多,让我们开始吧!

处理依赖关系并准备系统


我们将更新我们 Linux 系统的默认软件,并通过以下项目丰富其工具库:

  • Git(版本控制工具,如上所述)
  • Repo(免费的存储库管理工具,诞生于 Android 项目)
  • Python(一种面向对象的编程语言及其基于 C 的解释器)
  • cURL(用于下载和 Web 请求的库)

为了更新系统,请在 Debian 和 Ubuntu 上运行以下命令:

 sudo aptitude update
 sudo aptitude upgrade

安装 Repo 应用程序(参考。 http://source.android.com/source/downloading.html)

我们需要确保我们有一个 bin 目录来放置 Repo 的可执行文件。 为此,请运行以下命令来创建它并将其包含在我们的 path 中:

 mkdir ~/bin
 PATH=~/bin:$PATH

使用 cURL 工具下载 Repo 工具并确保它是可执行的(通过 chmod):

 curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
 chmod a+x ~/bin/repo

Couchbase,取决于发行版,将需要各种库和应用程序,包括但不限于:

  • 自动制作,libtool,pkg-config,检查,libssl-dev,sqlite3,libevent-dev,libglib2.0-dev,libcurl4-openssl-dev,erlang-nox,erlang-dev,erlang-src,ruby,libmozjs-dev( Debian)、xulrunner-dev (Ubuntu)、libicu-dev、libv8-dev、libclog-ppl0、libsnappy-dev、python-minimal

为了在 Debian 和 Ubuntu 上安装这些库,请依次运行以下命令:

 aptitude install -y --without-recommends build-essential automake libtool pkg-config check libssl-dev sqlite3 libevent-dev libglib2.0-dev libcurl4-openssl-dev erlang-nox curl erlang-dev erlang-src ruby libmozjs-dev libicu-dev libv8-dev libcloog-ppl0 libsnappy-dev

 aptitude install -y --without-recommends git-core

请注意(Ubuntu): 由于 Ubuntu 缺少 libmozjs-dev 库,除了上述之外,您还需要使用以下命令安装 xulrunner-dev 库:

 aptitude install -y xulrunner-dev

进入建设阶段


吉特:

我们现在需要让 Git 在我们的本地系统上知道我们是谁,然后再从 Github 签出 Couchbase 的分支。 所以让我们运行以下命令:

 git config --global user.email your@email.addr
 git config --global user.name  your_name

文件夹准备和 Couchbase 源的下载

截至 2013 年 10 月,Couchbase 的最新版本具有以下 清单 ,我们可以使用它们来克隆源:

  • rel-2.1.1.xml、rel-2.2.0.xml、rel-2.2.1.xml、rel-3.0.0.xml

让我们开始使用 mkdir 准备 Couchbase 源下载和安装文件夹:

 mkdir couchbase
 cd couchbase

现在我们可以使用清单文件通过 Repo 工具使用 initsync 命令克隆 Couchbase 2.1.1 版本:

 repo init -u git://github.com/couchbase/manifest.git -m rel-2.1.1.xml
 repo sync

从源头构建


完成上述步骤后,我们现在可以在 Debian 上使用 make 构建源代码了。 但是,对于 Ubuntu,我们需要指定并链接到 xulrunner 库。

Debian

我们可以直接运行make命令,开始构建过程。

 make

Ubuntu

让我们验证 xulrunner-dev 库是否已安装并使用 apt-cache 检查其版本,以便与 make 工具链接:

 apt-cache policy xulrunner-dev

为了在 /usr/include/ 和 /usr/lib/ 中的系统路径上找到 xulrunner 的位置,让我们使用带有目录信息选项 [ 的 list 工具X169X]:

 ls -ld /usr/lib/xulrunner-devel*
 ls -ld /usr/include/xulrunner*

现在我们可以相应地准备 make 命令,链接到 xulrunner 文件夹及其正确版本:**

 make couchdb_EXTRA_OPTIONS='--with-js-include=/usr/include/xulrunner-17.0 --with-js-lib=/usr/lib/xulrunner-devel-17.0/sdk/lib/'

精加工


为 Couchbase 设置系统限制

成功构建后,我们需要对 Couchbase 需要的系统设置限制:

 ulimit -n 10240 ulimit -c unlimited

运行和配置 Couchbase:

我们已准备好使用我们在安装文件夹的 /bin 目录中构建的二进制文件运行 Couchbase 服务器。

 ./install/bin/couchbase-server

为了配置 Couchbase 安装并将其加入集群,我们可以通过访问位于主机地址(我们 VPS 的 IP 或主机名)的端口 8091 来访问 Web 控制台:

URL: http://host.addr:8091

最后


故障排除

对于您可能遇到的常见错误,请访问 Couchbase 以获取当前位于的常见错误故障排除页面:

http://www.couchbase.com/docs/couchbase-manual-2.1.0/couchbase-troubleshooting-common-errors.html

有关构建和清单文件的更多详细信息,请参阅位于以下位置的 Couchbase Git 存储库清单:

https://github.com/couchbase/manifest

提交人: [[“%3Ca|https]] ://twitter.com/ostezer [[“%3C/a|”>操作系统]] 泰泽