CentOS 7 搭建 STF 环境:从依赖安装到手机群控上线

Alice
Alice
发布时间:2026-08-25 | 217人浏览过
原创

前言

OpenSTF 能把 Android 设备集中到浏览器里统一管理,但在 CentOS 7 上部署时,常见阻碍往往不是 STF 本身,而是 Node.js 版本受限、底层库较多、设备通信链条容易漏配。本文按依赖检查、原生组件安装、STF 启动和设备验收四步重写,保留原始命令与版本信息,帮助你快速判断环境卡在了哪一层。

用纸面卡片梳理 STF 在 CentOS 7 上的核心依赖与版本约束
STF 依赖全景图先看清 STF 依赖结构,再逐项安装,能减少后续编译与运行报错。

OpenSTF 是一套通过浏览器远程调试和管理手机、手表等智能设备的 Web 应用。对于想在 CentOS 7 上搭建一套可用群控环境的人来说,真正的难点不在于执行 npm install,而在于前置依赖多、版本要求严格,尤其是 Node.js 需要控制在 8.x。下面按“先装基础组件,再装 STF,最后验证设备接入”的顺序整理,方便你判断每一步是否已经满足运行条件。

先确认 STF 运行所需依赖

OpenSTF 不是一个只靠 Node.js 就能跑起来的项目,它依赖多项系统组件协同工作。原始要求包括:

  • Node.js 8.x,而且是 required,因为部分依赖不支持更高版本
  • 正确配置好的 ADB
  • RethinkDB >= 2.2
  • GraphicsMagick,用于截图缩放
  • ZeroMQ 库
  • Protocol Buffers 库
  • yasm,用于编译内嵌的 libjpeg-turbo
  • pkg-config,供 Node.js 查找系统库

编译型依赖较多,先把常用编译工具装上:

yum install gcc  gcc-c++ libtool -y

如果你的机器此前很少编译第三方组件,这一步通常不能省。

ADB 与 RethinkDB:先把设备通信和数据库打通

安装 ADB

ADB 是 Android 的命令行调试工具,STF 接管设备时会直接用到它。文中的做法是下载 Google 平台工具包,再把 adb 链接到系统命令路径。

展示图像处理、通信库与环境变量之间关系的暖色专栏手绘图
原生库安装链路图像库、消息库和环境变量是 STF 安装阶段最常见的卡点,顺序和路径都要对齐。
wget https://dl.google.com/android/repository/platform-tools_r29.0.5-linux.zip

unzip platform-tools_r29.0.5-linux.zip
mv ./platform-tools /usr/local/

ln -s /usr/local/platform-tools/adb /usr/bin/adb

安装后先验证版本,确保命令可以直接调用:

adb version

Android Debug Bridge version 1.0.41
Version 29.0.5-5949299
Installed as /usr/local/platform-tools/adb

只要能得到类似输出,说明 ADB 已经可用。

安装 RethinkDB

STF 运行时需要数据库支撑,原文使用的是 RethinkDB。CentOS 7 上可以直接通过官方仓库文件接入后使用 yum 安装:

wget https://download.rethinkdb.com/centos/7/`uname -m`/rethinkdb.repo -O /etc/yum.repos.d/rethinkdb.repo

yum install -y rethinkdb

安装完成后查看版本:

rethinkdb -v

rethinkdb 2.4.0 (GCC 4.8.5)

这里的版本输出也能顺带确认程序是否已正确写入系统环境。

图像处理、通信与编译依赖怎么装

这一部分是整个环境里最容易漏项的地方。STF 本身是 Node.js 应用,但很多能力来自底层库,所以这些组件最好按顺序完成。

GraphicsMagick

GraphicsMagick 用于截图相关处理。文中的安装方式为源码编译:

wget https://jaist.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.34/GraphicsMagick-1.3.34.tar.gz  

tar -zxvf GraphicsMagick-1.3.34.tar.gz 
cd GraphicsMagick-1.3.34
./configure --prefix=/usr/local/GraphicsMagick
make && make install

protobuf

ProtoBuf 也就是 Google Protocol Buffer,负责结构化数据交换。相比 XML 和 JSON,它更适合对体积和效率有要求的场景。

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protobuf-cpp-3.11.2.tar.gz
tar -zxvf protobuf-cpp-3.11.2.tar.gz   

cd protobuf-3.11.2/
./configure --prefix=/usr/local/protobuf
make
make install

pkgconfig

pkg-config 负责帮助 Node.js 在编译依赖时找到系统库信息,缺了它,后续安装 STF 时很容易报找不到库的错误。

yum install -y pkgconfig

安装后还需要补上环境变量:

vim /etc/profile.d/pkgconfig.sh

写入:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

然后让配置立即生效:

source /etc/profile

ZeroMQ 与 libsodium

ZeroMQ 是开源消息队列库,而它又依赖 libsodium,所以需要先装前者的基础库,再装 ZeroMQ 本体。

先安装 libsodium:

wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18.tar.gz
tar -zxvf libsodium-1.0.18.tar.gz 
cd libsodium-1.0.18/

./configure
make && make check
make install

ldconfig

再安装 ZeroMQ:

wget https://archive.org/download/zeromq_4.1.4/zeromq-4.1.4.tar.gz
tar -zxvf zeromq-4.1.4.tar.gz 

cd zeromq-4.1.4

./autogen.sh
./configure --prefix=/usr/local/zeromq
make -j 4 && make install

ln -s /usr/local/zeromq/lib/libzmq.* /usr/local/lib/
ln -s /usr/local/zeromq/include/zmq* /usr/local/include/

这里额外创建软链接,是为了让系统和后续编译过程更容易找到库文件与头文件。

yasm

yasm 也是 STF 编译链里的必备项之一,原文同样使用源码安装:

wget https://github.com/yasm/yasm/releases/download/v1.3.0/yasm-1.3.0.tar.gz
tar -zxvf yasm-1.3.0.tar.gz 

cd yasm-1.3.0/
./configure --prefix=/usr/local/yasm 
make && make install

安装完成后追加环境变量:

vim /etc/profile.d/yasm.sh

写入:

export PATH=$PATH:/usr/local/yasm/bin/

让配置立即生效:

source /etc/profile

最后把本地库目录加入动态链接配置:

echo "/usr/local/lib">>/etc/ld.so.conf
ldconfig

这一步是为了减少系统在运行或编译时找不到共享库的问题。

Node.js 版本要求与 STF 安装

这一段最关键的信息只有一句:Node.js 建议安装 8.x,高版本可能不兼容。原文给出的示例版本是:

# node -v
v8.17.0

如果你的环境已经装了更高版本 Node.js,最好先确认是否需要单独切换到 8.x,否则后面即便依赖齐全,stf 也可能在安装阶段报错。

确认 Node.js 版本无误后,直接全局安装 STF:

npm install -g stf  --unsafe-perm

原文中的判断标准比较直接:如果没有报错,就可以视为安装成功。

启动 STF 并验证手机是否接入成功

安装结束后,还需要完成两步验证:一是 STF 服务能否正常启动,二是 Android 设备能否被 ADB 和 Web 界面同时识别。

用步骤卡片展示 STF 启动、浏览器访问与 adb 识别设备的验证流程
启动与验收检查单最终是否可用,要同时看数据库进程、STF 页面和 adb 设备列表三处状态。

先启动 rethinkdb

第一步先启动数据库,而且这个终端不要关闭:

rethinkdb

再启动 STF

新开一个终端,执行:

stf local --public-ip 192.168.226.11

其中 192.168.226.11 是本机 IP。启动后,可以在浏览器访问 http://192.168.226.11:7100/,看到 STF 的管理界面。

连接手机并检查设备识别

把手机通过 USB 连接到电脑,并在手机上打开调试模式。随后在电脑端执行:

# adb devices
List of devices attached
HMMBFQWW99999999        device

如果能看到设备序列号和 device 状态,说明 ADB 侧已经识别成功。此时刷新 STF 后台页面,设备通常就会出现在管理界面中,之后即可进入远程控制和群控管理流程。

从整个过程看,CentOS 7 部署 STF 的核心不是命令本身多复杂,而是要把版本和依赖关系对齐,尤其是 Node.js 8.x、ADB、RethinkDB 以及 ZeroMQ 相关库。如果你按上面的顺序逐项验证,遇到问题时也更容易定位是在数据库、编译链,还是设备连接这一层出了偏差。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表