参考文章如下:
1. WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
3. centos7下stf安装介绍(一)----环境搭建(主要参考这篇文章,本地运行STF并没有问题,但是加上--allow-remote就会报和jpegturbo相关的错误,作者文章里也没有试远程连接的情况。最终参考下一篇文章重装了jpegturbo和STF解决)
4. Centos7部署openstf(建议直接参考这篇文章进行安装,如果遇到坑了可以看看我这篇文章有没有答案)
进入安装步骤:
1. 查询Linux版本号(网上文章有说在centOS6.X上安装不成功):
cat /etc/redhat-release
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
如果为空,说明没有安装,直接安装即可。
安装成功后查看版本号:
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"
我安装的结果如下:
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)查看配置结果:
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
查看安装结果:
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
验证安装结果:
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
查看安装结果:
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
查看安装结果:
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
查看安装结果:
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
查看安装结果:
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
查看安装结果:
然后用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):
可以先进入cd /usr/local/node/node-v8.91-linux-x64/lib/node_modules/stf/bin执行:
./stf doctor
出现如下报错:
解决方案:
a. 查看ZeroMQ安装在何处:
b. cd /etc
sudo vim /etc/ld.so.conf
在文件里添加:
/usr/local/lib
运行:ldconfig
再次检查环境:
./stf doctor
在启动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
错误提示: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
出现如下错误:
解决方式(参考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这里设置。开始只关注连接方式和界面名称,但是一直不行,后来才尝试将混杂模式默认的“拒绝”改为“全部允许”就可以了。