0x00 起源
从github上边下载了PeiQi文库来着,想在本地搭起来,然后就开始了排坑之旅。网上找的博客一个个都好像命令大全,虽然我的也可能写成命令大全吧,但是我安装环境遇到的坑,也差不多跟命令行差不多多了。
0x01 安装nodejs
官网地址在此https://nodejs.org/en/
官网推荐的版本是14.17.6,但是由于在后边gitbook build的时候一直报错,所以我自己又换了12.22.6的版本。下载链接在这https://nodejs.org/dist/latest-v12.x/
pkg结尾。
如果你遇到了跟我一样的状况,需要先卸载高版本再安装低版本,卸载nodejs的命令是
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}
安装完成检查
npm -v
0x02 安装gitbook
gitbook是在安装过npm之后才能安装的,需要sudo权限
sudo npm install gitbook -g
sudo npm install -g gitbook-cli
在这步安装可能会出现很多warning,但是最后有Added packages这种显示一般来说问题不大。(个人拙见)
检查是否安装成功,V一定要大写
gitbook -V
查看安装位置
which gitbook
0x03 gitbook的使用
可以新建一个目录然后打开目录
mkdir mygitbook && cd mygitbook
初始化
gitbook init
他会初始一个README.md和一个SUMMARY.md,如果没有会重新创建一个新的。这时候可能会报错
TypeError [ERR_INVALID_ARG_TYPE]: The “data” argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise
出现这个报错,就老老实实安装v12版本吧。
开始使用
PeiQi文库在github上下载下来的自带了README.md和SUMMARY.md,还有_book,直接复制下来粘贴到mygitbook目录里就可以啦
还有两个命令,
编写 gitbook 内容,重新编译:
gitbook build
启动服务:
gitbook serve
正常来讲到这里就能在http://localhost:4000
页面下看了,但是如果你遇到了这个报错
Error: EPERM: operation not permitted
百度搜到的都说要用管理员权限打开,切换命令是su root
, 如果没有设置过密码设置一个就可以,到了.sh的界面要记得切到mygitbook目录下再输gitbook serve
,就能够开启服务啦。
哦对了,这里可能还会出现一个报错:
TypeError: cb.apply is not a function
at /usr/local/lib/node_modules/gitbook-cli/node_modules/npm/node_modules/graceful-fs/polyfills.js:287:18
不要慌,切到这个目录下,sudo打开这个js文件,在他的60多行的位置,把这三行注释掉
0x04 其他
关于一些其他的报错,根据报错输一些命令就好啦,不行就重新
sudo npm uninstall gitbook -g
sudo npm install gitbook-cli -g
需要更新npm就更新,需要安装plugins就安装,需要--force覆盖也不要手软,嗯,应该没啥了。
如果在初始化或者build的时候遇到端口占用的情况,请参考:
查询端口PID
sudo lsof -i :35729
结束进程
kill -9 4001(PID)