30 December 2014

前言

很早之前,就装了NodeJS。但是,后来接触了bower时,使用npm install bower,然后bower -v时,什么没有输出,那时就觉得自己安装的有问 题。今天,安装gitbook时,发现,Ubuntu打包的Node确实有问题。然后,参照rvm,安装nvm,编译安装特定版本node,设定特定版本的ndoe(nvm alias default 0.10.32), 然后,npm install gitbook -g,然后,gitbook -v发现,果然正常了。

Ubuntu果然把我给坑了,apt-get安装一些稳定的,c/c++的库和工具,确实很方便,迭代快的新工具就不太适合了。

gitbook简介

gitbook是一个基于node的,用于构建图书使用的命令行工具。

使用的前置条件:

  • 一些Markdown语法,两个基本Markdown文件(README.md 和 SUMMARY.md)
  • 常用的gitbook命令行: gitbook [serve build pdf ebook init]

phantomjs安装失败了,但有好像没失败。如果失败了,就去官方站点上下载依赖的版本,然后拷贝到对应的node_modules目录中。

感觉,准备的差不多了,可以开始干了。

实践

创建了一个SUMMARY.md,内容如下:

* [前言](preface.md)
* [第一章 了解Linux操作系统](chap1/README.md)
  - [1.1 Linux进程管理](chap1/Linux进程管理.md)
  - [1.2 Linux内存结构](chap1/Linux内存结构.md)
  - [1.3 Linux文件系统](chap1/Linux文件系统.md)
  - [1.4 硬盘I/O子系统](chap1/io子系统.md)
  - [1.5 网络子系统](chap1/network.md)
  - [1.6 了解Linux性能指标](chap1/indice.md)
* [第二章 监控和测量工具](chap2/README.md)
  - [2.1 介绍](chap2/intro.md)
  - [2.2 工具功能简介](chap2/工具功能简介.md)
  - [2.3 监控工具](chap2/mtool/README.md)
    - [2.3.1 top](chap2/mtool/top.md)
    - [2.3.2 vmstat](chap2/mtool/vmstat.md)
    - [2.3.3 uptime](chap2/mtool/uptime.md)
    - [2.3.4 ps与pstree](chap2/mtool/ps.md)
    - [2.3.5 free](chap2/mtool/free.md)
    - [2.3.6 iostat](chap2/mtool/iostat.md)
    - [2.3.7 sar](chap2/mtool/sar.md)
    - [2.3.8 mpstat](chap2/mtool/mpstat.md)
    - [2.3.9 numaster](chap2/mtool/numaster.md)
    - [2.3.10 pmap](chap2/mtool/pmap.md)
    - [2.3.11 netstat](chap2/mtool/netstat.md)
    - [2.3.12 iptraf](chap2/mtool/iptraf.md)
    - [2.3.13 tcpdump/ethereal](chap2/mtool/tcpdump.md)
    - [2.3.14 nmon](chap2/mtool/nmon.md)
    - [2.3.15 strace](chap2/mtool/strace.md)
    - [2.3.16 Proc文件系统](chap2/mtool/Proc文件系统.md)
    - [2.3.17 KDE System Guard](chap2/mtool/KDE System Guard.md)
    - [2.3.18 Gonme System Monitor](chap2/mtool/Gonme System Monitor.md)
    - [2.3.19 Capacity Manager](chap2/mtool/Capacity Manager.md)
  - [2.4 基准工具](chap2/btool/README.md)
    - [2.4.1 LMbench](chap2/btool/lmbench.md)
    - [2.4.2 IOzone](chap2/btool/iozone.md)
    - [2.4.3 netperf](chap2/btool/netperf.md)
    - [2.4.4 其它有用工具](chap2/btool/other.md)
* [第三章 分析性能瓶颈](chap3/README.md)
  - [3.1 确认瓶颈](chap3/确认瓶颈.md)
  - [3.2 CPU瓶颈](chap3/CPU瓶颈.md)
  - [3.3 内存瓶颈](chap3/内存瓶颈.md)
  - [3.4 硬盘瓶颈](chap3/硬盘瓶颈.md)
  - [3.5 网络瓶颈](chap3/网络瓶颈.md)
* [第四章 操作系统调优](chap4/README.md)
  - [4.1 调优原则](chap4/调优原则.md)
  - [4.2 安装注意事项](chap4/安装注意事项.md)
  - [4.3 更改内核参数](chap4/更改内核参数.md)
  - [4.4 处理器子系统调优](chap4/处理器子系统调优.md)
  - [4.5 虚拟内存子系统调优](chap4/虚拟内存子系统调优.md)
  - [4.6 硬盘子系统调优](chap4/硬盘子系统调优.md)
  - [4.7 网络子系统调优](chap4/网络子系统调优.md)

然后,运行gitbook init,创建如下的目录结构:

▾ chap1/
    indice.md
    io子系统.md
    Linux内存结构.md
    Linux文件系统.md
    Linux进程管理.md
    network.md
    README.md
▾ chap2/
  ▾ btool/
      README.md
  ▾ mtool/
      README.md
    intro.md
    README.md
    工具功能简介.md
▾ chap3/
    CPU瓶颈.md
    README.md
    内存瓶颈.md
    硬盘瓶颈.md
    确认瓶颈.md
    网络瓶颈.md
▾ chap4/
    README.md
    处理器子系统调优.md
    安装注意事项.md
    更改内核参数.md
    硬盘子系统调优.md
    网络子系统调优.md
    虚拟内存子系统调优.md
    调优原则.md
  preface.md

从生成的目录结构可以猜出,gitbook大概不支持自动的三级目录的生成。

生成静态页面

gitbook自带的工具可以生成静态页面,运行命令为gitbook serve .(这里是在书籍的当前目录运行的),输出如下:

Press CTRL+C to quit ...

Live reload server started on port: 35729
Starting build ...
Successfully built!

Starting server ...
Serving book on http://localhost:4000

生成电子书

gitbook生成电子书,需要Calibre的支持,Calibre安装命令如下:

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

注: 这里是个人环境为 64位ubuntu Linux,已安装了python。

生成pdf,还需要安装gitbook-pdf,命令如下:

npm install gitbook-pdf -g

生成epub,还需要安装ebook-convert,命令如下:

npm install ebook-convert -g

至此,使用命令gitbook [pdf|epub] . 就能生成相应的电子书了。这样,个人自制电子书的工具也准备好了,这意味着,我也可以 自己制作自己的电子书。不过,如果要制作精美的电子书,不知道是不是需要学习特定格式的Markdown?!

参考资料

  1. NVM : node版本管理工具
  2. Gitbook使用入门
  3. 使用Gitbook制作电子书
  4. 使用GitBook平台发布电子书
  5. calibre linux安装



傲娇的使用Disqus