Linux(Ubuntu/CentOS)直接安装STF

参考文章如下:

1. WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行

2. STF环境搭建&运行及踩坑记录

3. centos7下stf安装介绍(一)----环境搭建(主要参考这篇文章,本地运行STF并没有问题,但是加上--allow-remote就会报和jpegturbo相关的错误,作者文章里也没有试远程连接的情况。最终参考下一篇文章重装了jpegturbo和STF解决)

4. Centos7部署openstf(建议直接参考这篇文章进行安装,如果遇到坑了可以看看我这篇文章有没有答案)


进入安装步骤:

1. 查询Linux版本号(网上文章有说在centOS6.X上安装不成功):

             cat /etc/redhat-release

查询CentOS版本号

2.基本命令安装

        安装wget、zip等命令,后面有需要

        sudo yum install wget

        yum install -y unzip zip

3. java环境配置(可参考https://blog.csdn.net/tjcyjd/article/details/50876222)

        查看CentOS自带JDK是否已安装。

        ◆输入:yum list installed |grep java

        如果为空,说明没有安装,直接安装即可。

        安装成功后查看版本号:

查看java版本号

4. android SDK环境配置(参考http://blog.devwiki.net/index.php/2017/07/20/centos-install-android-sdk.html)

    1)下载Android SDK:

    cd /opt

    mkdir androidSdk

    wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip

    unzip sdk-tools-linux-3859397.zip

    2)配置环境变量

    vim /etc/profile

    添加下面内容:

    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

    export PATH=$PATH:/opt/androidSdk/tools/bin

    然后执行source profile 使之生效

    3)查看已安装信息

    sdkmanager --list

(有可能会提示找不到该命令,可进入/opt/androidSdk/tools/bin,然后执行sudo ./sdkmanager --list)

查看已安装信息(部分截图)

4)安装需要的package

sdkmanager "build-tools;26.0.0"

我安装的结果如下:

查看安装platform-tools的结果

    5)配置platform tools

    打开/etc/profile添加如下命令:

    //添加结果

...

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

export PATH=$PATH:/opt/androidSdk/tools/bin

export PATH=$PATH:/opt/androidSdk/platform-tools

...

    然后执行source profile 使之生效

    6)查看配置结果:

查看adb安装结果

5. node安装

    wget https://nodejs.org/dist/v9.4.0/node-v9.4.0-linux-x64.tar.xz

    xz -d node-v9.4.0-linux-x64.tar.xz

    tar -xv -f node-v9.4.0-linux-x64.tar.xz

    mv node-v9.4.0-linux-x64/ /usr/local/nodejs

    ln -s /usr/local/nodejs/bin/node /usr/local/bin

    ln -s /usr/local/nodejs/bin/npm /usr/local/bin

    检查安装结果:

    node -v

    npm -v

6.rethinkdb安装

执行:mkdir supporters

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

sudo yum install rethinkdb

查看安装结果:

查看rethinkdb安装结果

7.GraphicsMagick安装(耗时很久,建议开多个终端tab,和别的一起装)

执行:

cd /opt/supporters/

wget https://iweb.dl.sourceforge.net/project/graphicsmagick/graphicsmagick/1.3.26/GraphicsMagick-1.3.26.tar.gz

sudo tar xvf GraphicsMagick-1.3.26.tar.gz

cd GraphicsMagick-1.3.26/

sudo ./configure

sudo make

make install

验证安装结果:

验证gm安装结果

8.yasm安装

执行:

wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

sudo tar xvf yasm-1.3.0.tar.gz

cd yasm-1.3.0

./configure --prefix=/usr/local/yasm

sudo make

sudo make install

查看安装结果:

查看yasm安装结果

9. libsodium安装

执行:

cd /opt/supporters/

wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.15.tar.gz

sudo tar xvf libsodium-1.0.15.tar.gz

cd libsodium-1.0.15/

sudo ./configure

sudo make

sudo make install

查看安装结果:

查看libsodium安装结果

10. zeromq安装

wget https://github.com/zeromq/libzmq/releases/download/v4.2.2/zeromq-4.2.2.tar.gz

sudo tar xvf zeromq-4.2.2.tar.gz

cd zeromq-4.2.2/

sudo ./configure

sudo make

sudo make install

11.protobuf安装

执行:

wget https://github.com/google/protobuf/releases/download/v3.5.0/protobuf-cpp-3.5.0.tar.gz

sudo tar xvf protobuf-cpp-3.5.0.tar.gz

cd protobuf-3.5.0/

sudo ./configure --prefix=/usr/local/protobuf

sudo make

sudo make install

配置变量:

vim /etc/profile

在文件中增加如下内容:

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

export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

执行:

source /etc/profile

查看安装结果:

查看protoc安装结果

12. pkg-config安装

执行:

cd /opt/supporters/

wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz

sudo tar xvf pkg-config-0.29.2.tar.gz

cd pkg-config-0.29.2

./configure --prefix=/usr/local/pkg-config --with-internal-glib

make

make install

查看安装结果:

查看pkg-config安装结果

13. STF安装

因为直接安装npm install -g stf会报错之前我都是先安装淘宝镜像,但是这次不知道是因为我yasm装的有问题还是别的一直不成功,详见坑1,直接如下装倒是成功了:

npm config set unsafe-perm=true

npm install -g stf

安装完成后,如果可以运行stf,或者进入相应的bin路径下./stf且没有出错就是安装成功了。具体可以参考使用篇。


坑1:通过淘宝镜像cnpm安装STF

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org

直接安装会出现如下错误(安装STF的时候ssh连接成另外一个账户了,因为都是用的root权限,都是一样的):

安装淘宝镜像错误提示

可以先将npm降版本:

sudo npm install -g npm@4.6.1

再次执行

sudo npm install -g cnpm --registry=https://registry.npm.taobao.org

npm降版本后重新安装cnmp

查看安装结果:

查看cnpm安装结果

然后用cnpm安装STF,因为我这里一直提示找不到cnpm这个命令,就进入cnpm的文件夹再执行

cd /usr/local/node/node-v8.9.1-linux-x64/lib/node_modules/cnpm/bin

sudo ./cnpm install -g stf

在安装过程中又有如下错误(详见坑1):

cnpm安装STF出错

可以先进入cd /usr/local/node/node-v8.91-linux-x64/lib/node_modules/stf/bin执行:

./stf doctor

出现如下报错:

stf doctor有报错

解决方案:

a. 查看ZeroMQ安装在何处:

查看ZeroMQ安装地址

b. cd /etc

    sudo vim /etc/ld.so.conf

    在文件里添加:

    /usr/local/lib

    运行:ldconfig

    再次检查环境:

    ./stf doctor

再次检查stf环境

在启动STF时也没有问题:

[openstf@CentOS7 bin]$ ./stf local --public-ip 10.1.132.193 

但是如果要运行如下命令,即作为MASTER去连接其他SLAVE就出故障(单独连接并没有出错,但是去获取SLAVE上连接的设备时就会出错):

[openstf@CentOS7 bin]$ ./stf local --public-ip 10.1.132.193 --allow-remote

STF REMOTE出错

错误提示:FTL/device 13575 [10.1.137.83:5555] Setup had an error Error: Cannot find module '/usr/local/node/node-v8.9.1-linux-x64/lib/node_modules/stf/node_modules/_jpeg-turbo@0.4.0@jpeg-turbo/lib/binding/node-v57-linux-x64/jpegturbo.node'

尝试的解决办法:

1. 卸载STF,yasm。重新安装,没有解决。参考https://blog.csdn.net/m417868/article/details/80006119

2. 安装jpegturbo的依赖

     npm install jpeg-turbo --registry=https://registry.npm.taobao.org

    出现如下错误:

安装jpegturbo依赖出现错误

    解决方式(参考https://blog.csdn.net/gupan86/article/details/46596599)仍旧无果

3. 最终是重新安装了yasm和STF(正式步骤里即为更新过的)才成功


增加一个关于通过在虚拟机上装STF需要注意的地方:

装Ubuntu虚拟机的方式安装要注意一个坑:网络连接

主要参考https://testerhome.com/topics/10406这篇文章

装虚拟机参考https://blog.csdn.net/shenhaifeiniao/article/details/69397000

            如果直接按默认方式安装完Ubuntu的系统,然后在Ubuntu里安装docker,然后装open-stf的话,在最后会出现网络不通的情况,最后是在VirtualBox管理器>设置>网络>网卡1这里设置。开始只关注连接方式和界面名称,但是一直不行,后来才尝试将混杂模式默认的“拒绝”改为“全部允许”就可以了。

推荐阅读更多精彩内容