前言
本來想先寫 laravel 的筆記,但工作上剛好碰到 openstf 就先來記錄一下安裝流程
畢竟這專案沒有繼續維護了,有些套件需要限定版本才能安裝,安裝起來一堆麻煩問題
簡單說一下,STF 是一套用 angular 和 nodejs 寫的手機控制系統
讓你可以遠端操作實體手機做任何操作,甚至安裝app
實現做法是透過 adb 對手機下指令,再搭配 rethinkdb 紀錄裝置資訊
我後續也會再寫一篇 rethinkdb 的簡易教學(用法太特別了,跟SQL完全不同) 
環境
- OS : Debian 10
 - VMware Workstation 15 Player
 
安裝流程
安裝 NVM
- 下載NVM
 - source ~/.bashrc
 - nvm install 8.8.1 –delete-prefix
 - 確認 NVM 是否安裝成功,安裝成功的話 npm 就可以使用了
- nvm –version
 - npm -v
 
 
開始安裝和設定 NPM
- mkdir ~/.npm-global
 - 安裝 npm 為 6.14.5 版本太新後續會有問題
- npm install -g npm@6.14.5
 
 - npm config set prefix ‘~/.npm-global’
 - vi ~/.profile
- 添加 PATH=~/.npm-global/bin:$PATH
 
 - nvm use –delete-prefix v8.8.1 –silent
 - source ~/.profile
 - NPM_CONFIG=~/.npm-global
 
安裝必要套件
- nvm use –delete-prefix v8.8.1
 - npm install -g bower gulp
- 確認安裝是否成功
- bower -v
 - gulp -v
 
 
 - 確認安裝是否成功
 - npm install -g node-sass
 - npm install -g gulp-sourcemaps/map-sources
 - sudo apt-get install -y yasm pkg-config
 
安裝 ADB
- sudo mkdir -p /usr/local/android-sdk
 - cd /usr/local/android-sdk/
 - sudo curl -OL https://dl.google.com/android/repository/platform-tools-latest-linux.zip
 - sudo unzip platform-tools-latest-linux.zip
 - sudo rm -f platform-tools-latest-linux.zip
 - sudo ln -s /usr/local/android-sdk/platform-tools/adb /usr/bin/adb
 - export PATH=/usr/local/android-sdk/platform-tools:${PATH}
 - sudo echo “export PATH=/usr/local/android-sdk/platform-tools:${PATH}” >> /etc/profile
 - 檢查 ADB 是否安裝成功
- adb version
 
 
安裝 rethinkDB
- sudo echo “deb http://download.rethinkdb.com/repository/debian-$(lsb_release -cs) $(lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/rethinkdb.list
 - sudo wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add -
 - sudo apt-get update
 - sudo apt-get install -y rethinkdb
 - sudo cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
 - 重啟 rethinDB
- sudo /etc/init.d/rethinkdb restart
 
 
安裝 Protocol Buffers libaries
- sudo apt-get install -y graphicsmagick libzmq3-dev
 - 裝 3.0.0 版,3.0.0 以下的不支援了
 - wget https://github.com/google/protobuf/releases/download/v3.0.0/protobuf-js-3.0.0.tar.gz
 - tar -zxvf protobuf-js-3.0.0.tar.gz
 - rm protobuf-js-3.0.0.tar.gz
 - cd protobuf-3.0.0
 - ./configure
- 如果出現 configure: error: no acceptable C compiler found in $PATH
 - 安裝 gcc
- sudo apt-get install -y build-essential manpages-dev
 
 
 - make;make check;make install
- 這會跑 10 分鐘以上,可以放著先去做別的事
 
 - sudo /usr/sbin/ldconfig
 - 確認是否安裝成功
- protoc –version
 
 
安裝 STF
- npm install -g stf –unsafe-perm
 - 下載 OpenSTF 專案
- git clone https://github.com/openstf/stf.git
 
 - cd stf
 - nvm use 8.8.1
 - npm install
 - bower install
 - gulp build
- 如果出現錯誤刪掉 node_modules 資料夾再重新 npm install
 
 - npm link
- 與 stf 連結,確保 stf 是執行當前專案
 
 - 確認 stf 相關套件都安裝完成
- stf doctor
1
2
3
4
5
6
7
8
92020-08-30T17:14:48.535Z INF/cli:doctor 29931 [*] OS Arch: x64
2020-08-30T17:14:48.537Z INF/cli:doctor 29931 [*] OS Platform: linux
2020-08-30T17:14:48.537Z INF/cli:doctor 29931 [*] OS Platform: 4.19.0-10-amd64
2020-08-30T17:14:48.537Z INF/cli:doctor 29931 [*] Using Node 8.8.1
2020-08-30T17:14:48.554Z INF/cli:doctor 29931 [*] Using ZeroMQ 4.3.1
2020-08-30T17:14:48.579Z INF/cli:doctor 29931 [*] Using ADB 1.0.41
2020-08-30T17:14:48.588Z INF/cli:doctor 29931 [*] Using ProtoBuf 3.0.0
2020-08-30T17:14:48.608Z INF/cli:doctor 29931 [*] Using GraphicsMagick 1.3.35
2020-08-30T17:14:48.618Z INF/cli:doctor 29931 [*] Using RethinkDB 2.4.1~0buster 
 - stf doctor
 - 執行 stf
- stf local
 - 如果是要開放遠端連線
stf local --cleanup --public-ip 192.168.137.129 --group-timeout 900 --allow-remote- 把 192.168.137.129 改成你的 IP
 
 
 - 打開瀏覽器輸入 localhost:7100
- 成功的話可以看這個畫面,任意輸入名稱跟信箱即可登入

 
 - 成功的話可以看這個畫面,任意輸入名稱跟信箱即可登入