Fantacity

Stand Alone Complex

亿书(Ebookchain)部署

记录部署亿书(Ebookchain)时候遇到的一些坑。

环境

Windows SubSystem for Linux (Ubuntu 14.04)

配置系统环境

参考Ebookchain GitHub 安装说明文档

安装必要的依赖包(命令行操作):

$ sudo apt-get update
$ sudo apt-get install curl build-essential python

安装SQLite3 (version 3.8.2)数据库:

$ sudo apt-get update
$ sudo apt-get install curl build-essential python

安装 Node.js (版本4.6.2) 和 npm:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
nvm install 4.6.2

由于node.js 和 npm之前已装过,这一步忽略。Node.js可以安装最新版本的。

备注:查看node与npm版本

npm -v
node -v

升级最新版本npm与稳定版node

npm install -g npm
npm install -g n
n stable

配置系统环境

全局安装 grunt-cli:

$ npm install grunt-cli -g

全局安装 bower:

$ npm install bower -g

克隆代码:

$ git clone https://github.com/Ebookcoin/ebookcoin.git

安装 node.js 模块:

$ npm install

加载 git 子模块 (client 和 ebookcoin-js):

$ git submodule init
$ git submodule update

其中ebookcoin-js通过git+ssh下载可能会很慢,需要有一定耐心。【官方文档注】:如果遇到权限拒绝错误,如:Error: Permission denied (publickey)?,是你没有配置好使用ssh访问github,请参考这里的文档

构建前端:

这一步可以和加载 git 子模块一起进行,节约时间。

进入public目录

$ cd public

打开package.json,修改以下几行:
"angular-resource": "latest" => "angular-resource": "~1.2.8",
"angular-route": "latest", => "angular-route": "~1.2.8",
"angular-filter": "latest", => "angular-filter": "0.5.16",

还是这个文件,添加以下几行:
"angular-gettext-tools": "2.3.7",
"less": "1.7.5",
"angular-filter": "latest",
这里less不要用最新版的(目前是2.7.3),会报错.

接下来开始安装前端node模块:

$ npm install

安装完毕之后,再把
ebookcoin/public/node_modules/_is-buffer@1.1.6@is-buffer
文件夹复制到
ebookcoin/_is-buffer@1.1.6@is-buffer
对,就是这么奇葩,不然会报一个
Error: Cannot find module '../../../../_is-buffer@1.1.6@is-buffer/index.js'的错误。

然后开始构建前端:

$ bower install
$ grunt release

运行

$ cd ..
$ node app.js