上周算是磕磕盼盼的把STF的安装路线走完了,之前安装STF时,特别慢,在走之前没能跑出来,但是今天来,发现STF成功的跪了,报了几个错误,慢慢整理起来:
首先总结一下在安装的时候容易出错的地方:
- 在帖子中,建议手动安装的就尽量手动安装,自动安装的包往往不符合实验环境的要求,这样会耗费更多的时间去升级,痛的领悟。比如nodejs,直接安装虽然快速简单,但是后期升级的坑的足够你折腾大半天。既然这样还是慢慢来,去官网下载(下载速度贼慢,就这15M的我下了40分钟,网友说好像是因为第一次,后面就贼快,不过都已经下过了,以后还下干嘛尼),然后手动安装。
- 一些程序因为安装顺序的问题,很容易出错。找个靠谱的帖子,按照帖子提醒的安装顺序一步步走。
- 帖子一般都是拥有一定Linux经验的人,往往对入门小白不够友好。所以每走一步都要确定帖子是不是这个意思。
- 报错常见的地方有这几个: nodejs\npm\STF\zeromq
前期准备-(这个地方没有图形界面,没有设置,感觉有的帖子说的也是不清不楚,无从勾选)
-
安装CNTLM,启动并设置全局代理(这里如何设置全局?)
-
安装vnc server和Xrdp (都是远程桌面控制相关,VNC-Viewer-5.3.1-Windows-64bit)
-
sudo apt-get install xrdp vnc4server xbase-clients
打开“桌面共享”设置,允许他人访问,去除访问确认和通知。(以上都是一些图形界面的内容)
-
sudo apt-get install dconf-editor
执行 dconf-editor 在org > gnome > desktop > remote-access下去勾选“requlre-encryption”
-
通过windows下的vnc viewer访问服务器IP
正式安装STF
1. 基础包安装
sudo apt-get update
sudo apt-get install git
sudo apt-get install lib32stdc++6
sudo apt-get install yum
2. 安装Android SDK
由于java jdk和Android SDk的文件较大,需到官网耐心下载,或者从已有的地方拷贝过来,并修改终端启动文件,设置环境变量。(但是这个gedit 指令我没有,我是直接进入环境变量文件,添加环境变量 sudo vim etc/profile):
下面是一种方法
sudo gedit ~/.bashrc
在文件末尾根据实际的java和sdk路径添加:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export ANDROID_HOME=/home/huawei/software/adt/sdk
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
在控制台执行命令使之生效:(如下命令是修改后立刻生效,但是当新起一个终端的时候,又会找不到,因此可以设置永久生效)
source ~/.bashrc #立即生效
source /etc/profile#永久,好像也不是永久,有很多坑
验证:控制台分别输入adb
和java -version
来验证SDK是否配置生效
3. 安装NodeJs
在https://nodejs.org(下载特别慢)
下载nodejs二进制可执行文件(linux二进制可执行文件,看操作系统选择正确的文件,下载.tar.gz),解压到某个目录xxx
切到这个xxx/bin/
目录下,运行如下命令(若后续有部分npm安装的模块如bower/stf,在命令行中执行提示找不到,则用同样的方法建立软连接,或者直接将该文件夹添加到环境变量中)
tar -xvzf PID #解压 PID即是 package ID 包名
cd PID #切到刚刚解压的这个目录下
sudo ln -s xxx/bin/node /usr/bin/node
sudo ln -s xxx/bin/npm /usr/bin/npm
验证:控制台分别输入node -v
和npm -v
验证是否配置完成
根据CNTLM监听端口,设置下npm代理,不然可能会遇到如下错误:
npm config set http-proxy http:工号:密码//公司代理:端口
npm config set https-proxy http:工号:密码//公司代理:端口
npm set strict-ssl false
#密码中特殊字符要替换,有替换的对应关系,比如!,对应%21,
设置好,就欧克了。
4. 安装bower
上述npm安装好了,就可很顺利的开展如下,控制台执行npm命令进行Bower安装并等待完成
sudo npm install bower -g
验证bower -version
我在这里报错了一个npm 问题,就是因为前面的代理没有设置好,因此,每一步都是很重要
5. 安装RethinkDB
控制台执行
source /etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
wget -qO- http://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
//注意:以上为一条命令,需一起执行
sudo apt-get update
sudo apt-get install rethinkdb
验证rethinkdb -v
6. 安装GraphicsMagick
最新版本包地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/
解压GraphicsMagickx.*.tar.gz(这就是二进制可执行文件)并控制台进入目录、
tar -xvzf PID #解压 PID即是 package id 包名
cd PID #切到刚刚解压的这个目录下
再执行
./configure
make
sudo make install
验证gm -version
7. 安装libsodium(zeromq的依赖,此步骤顺序不能乱)
github下载最新包:https://github.com/jedisct1/libsodium/releases
根据上述解压指令,解压这个包libsodium-1.0.16.tar.gz并控制台进入当前目录
./configure
make
sudo make install
验证whereis libsodium
8. 安装zeromq
最新版本包地址:http://download.zeromq.org/
执行上述解压命令 zeromq-4.1.6.tar.gz并控制台进入目录
执行
./configure
make
sudo make install
sudo ldconfig
9. 安装protobuf
github下载最新包:https://github.com/google/protobuf/releases
解压protobuf-all-3.6.0.tar.gz并控制台进入目录
执行
//因为需要配置环境变量,所以用参数指定到了local下的指定目录中
./configure --prefix=/usr/local/protobuf
make
sudo make install
修改环境变量配置文件(依然可以尝试手动设置,下载gedit的时候,一直报npm错误,一直没有安装上,因此都是采用手动的设置):
sudo gedit ~/.bashrc
配置环境变量并保存退出:
export PATH=$PATH:/usr/local/protobuf/bin/
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
在控制台执行命令使之生效:
source ~/.bashrc
验证 protoc --version
10. 安装pkg-config
sudo apt-get install pkg-config
验证 pkg-config --version
~$ pkg-config --version
0.29.1
11. 安装stf
终于到了这一步,在开始安装之前,我们需要设置一个非常重要的参数,新开一个终端,执行,直接把下句话,加入到环境变量中去:
export NODE_TLS_REJECT_UNAUTHORIZED=0
然后,执行命令:
sudo npm install -g stf
报如下的错误:
解决方法,使用以下指令可以安装STF:
sudo npm install stf -g --unsafe-perm
正确安装之后,应该就不会有错误提示了,会有个warn,但是这个也不影响使用。
完了之后要配置STF的环境变量,因为我后面启动STF的服务时,一直显示没有stf command,而且我没有见到帖子上有写需要配置环境变量。每个人操作不一样们因此我们要对症下药解决问题:
首先我们需要切到这个目录下去查看,这个是否安装成功,主要用到如下命令:
cd /xxx/xxx/xxx
./stf
可以看到是一个可执行文件,从上述返回的指显示,已经成功安装STF。
开始给他配置环境变量,按照之前的方法,添加相应路径即可,也可以百度,Ubuntu环境设置环境变量。
那么在任何地方都可以找到stf的指令了:
如下的环境变量:
路径到stf就可以了,而不是./stf/bin/stf, 最开始我一直配错,很尴尬
启动STF服务
一、启动rethinkDB
安装完成后,打开单独的控制台,运行命令等待服务启动完成:
rethinkdb
二、启动stf服务端
打开一个单独的控制台,运行命令等待服务启动完成:(在浏览器中输入http://localhost:7100打开,查看是否安装部署好环境)
stf local --public-ip=*.*.*.* --allow-remote
注:这里我多加了个参数 —allow-remote用于允许远程调试设备连接
很不幸,又报出如下的错误:
这个搜了网上说使用如下搜索,然后删掉返回的结果,在使用npm rebuild,即可解决问题,,:
find ./ -name "zmq.node"
npm rebuild
然而并没有解决问题,也列出来,可能会给有的人解决问题。晚上请教大神,也没有解决这个问题。
又问了一下安装stf发帖的人,说尝试一下这个,但是由于各种错误链接,没有brew命令,也就没有解决,
三、运行客户端
在浏览器中输入地址:http://localhost:7100/
输入用户名和邮箱登录即可开始使用
希望能找到根因,解决上述最后的问题。