背景

因为业务需要,查询相关资料查到了开源项目 STF,于是想部署到机器上运行看看,在此基础上看下是重写还是二次开发。看到是用 nodejs 开发的,心中就一阵感慨:又要折腾了~ 前前后后花了两天时间才终于部署好了,记录下部署过程中遇到的一些问题,希望对看到的人有所帮助。

前言

个人使用的系统环境:Centos7,64 位。
建议查看官方文档 readme,官方文档传送门:stf
建议使用 nvm 方式安装 node,官方建议使用>=6.9 的版本,最新稳定版本更佳。个人使用的是 8.12.0 版本。

建议 ***。
强烈建议安装完所有 stf 依赖环境之后,使用 stf doctor 进行检查。附上一张检查通过的图。

附上一篇站内安装贴:WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
最后,请耐心一点,安装各种环境需要花点时间,预祝各位部署顺利。

问题列表

npm install 过程中,安装 phantomjs 时很慢,甚至可能超时导致失败

编辑~/.npmrc,添加
phantomjs_cdnurl=http://npm.taobao.org/mirrors/phantomjs

EACCES,权限不够

忘记复制这个问题原话,在命令前添加 sudo 的方式也可以解决。但这并不是最佳的方式,官方建议的最佳方式是使用 nvm 的方式安装 node。贴个官方建议:How to Prevent Permissions Errors

node-gyp rebuild 出错

据说这是 node 一个 bug,由于我是使用 nvm 安装的 node,nvm install node 命令安装的 node 版本是 11.0.0 的,该版本是最新实验版。重新安装了最新稳定版本 8.12.0 ,至此问题解决:nvm node 8.12.0

ERROR in Node Sass does not yet support your current environment

这个问题很多人都遇见,报各种平台的都有,转到 stf 项目下,执行 npm rebuild node-sass ,问题解决。

error jpeg-turbo@0.4.0 install: 'node-pre-gyp install --fallback-to-build'

没有安装 yasm 导致的,安装即可。

ERROR in /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

这个问题是由于源码编译升级安装了 gcc 后,生成的动态库没有替换老版本的 gcc 的动态库导致的,将 gcc 最新版本的动态库替换掉系统中老版本的动态库即可解决。附一个解决问题详细步骤:解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题 至于为什么升级 gcc ,stf 源码中有个地方写到如果是 Linux 系统,则 export CXX=g++-4.9,而使用 yum 安装的版本只到 4.8,所以就源码安装了,源码安装 gcc4.9.4 花了不少时间,编译好久。。。

Unexpected error checking ZeroMQ: Error: Could not locate the bindings file

转到 stf 目录下,执行 npm rebuild

后话

官方支持 docker 方式安装,未尝试,以后有机会可能会尝试一下。现阶段先折腾一下功能改造什么的。
有位前辈的贴子很不错,可以参考:STF 二次开发辛酸之路


↙↙↙阅读原文可查看相关链接,并与作者交流