安装指南

从源码安装

用户应该详细阅读 init.conf 文件,并根据自己的实际情况修改它。(这个文件包含 gStore 系统的基本配置。)

gStore 是一个绿色软件,你只需要用三个指令对它进行编译。请在 gStore 根目录下运行 sudo ./scripts/setup/setup_$(ARCH).sh make pre   make  来编译 gStore 代码,连接 ANTLR 库,并生成可执行的 “gbuild” “gquery” “ghttp” “gserver” “gclient” 。另外, gStore api 也在此时生成。

前两个指令只需执行一次,之后可以直接输入  make  进行编译。如果想要更快地编译,输入  make -j4  ,具体使用多少线程取决于机器。

如果输入了  make dist  指令,下次编译时需要再次执行  make pre 。 

如果你想使用 gStore API 样例,请运行  make APIexample  C++ API Java API 的样例代码。

可以使用  make clean  令清除所有对象、可执行程序,使用  make dist  指令清除 gStore 根目录下的所有对象、可执行程序、库、数据集、数据库、调试日志和临时/文本文件。

你可以自由修改 gStore 的源代码,在尊重我们工作的前提下开发自己的项目,输入  make tarball  指令将所有有用的文件压缩成 .tar.gz 文件以便于传输。

如果你想使用测试工具,输入  make gtest  编译 gtest 程序。你可以在【如何使用】 一章中看到关于 gtest 程序的更多细节。

 

Docker 部署

简单来说,我们提供两种方式通过容器部署 gStore :一种是通过项目根目录的 Dockerfle 文件自主构建,然后运行容器;另一种是直接下载已经自动构建完成的镜像,然后直接运行。

环境准备

关于安装使用 Docker ,官方针对常见 Linux 发行版文档已经写得很详细,在此直接给出参考地址: Docker 文档

需要注意的是, Docker 版本过高可能导致一些问题,建议仔细阅读注意事项。当前测试环境版本是 Docker CE 17.06.1

通过 Dockerfle 构建镜像 假设已经拥有正常的 Docker 环境跟网络后,首先通过 git clone 下载项目,然后进入项目根目录,输入命令 docker build -t gstore ,即可开始构建,默认使用根目录的 Dockerfle Dockerfle 文件内有更详细的说明。

构建完成后,直接通过  docker run -it gstore  即可进入容器执行其他操作。

直接拉取镜像运行 无需下载项目或自己构建,直接输入  docker pull suxunbin/auto_gstore:latest  拉取已经在 docker hub 上自动构建完成的镜像。拉取完成后  docker run -it suxunbin/auto_gstore:latest  即可直接进入容器使用。

存在的问题

因为容器化伴随着一些不确定的影响,包括不限于网络,锁,缓存,权限等问题,调试起来很难定位,已知可能存在以下问题: (宿主机是 CentOS 7.4)

1. Dockerfle 的构建过程中添加环境 ENV CC="ccache g++" 会导致编译错误,原因未知,且可能影响镜像缓存层,导致之后构建反复报错。

2. 通过 docker run 启动容器后,可能出现启动后即自动关闭的情况。