openSTF 安裝筆記

前言

本來想先寫 laravel 的筆記,但工作上剛好碰到 openstf 就先來記錄一下安裝流程
畢竟這專案沒有繼續維護了,有些套件需要限定版本才能安裝,安裝起來一堆麻煩問題
簡單說一下,STF 是一套用 angular 和 nodejs 寫的手機控制系統
讓你可以遠端操作實體手機做任何操作,甚至安裝app
實現做法是透過 adb 對手機下指令,再搭配 rethinkdb 紀錄裝置資訊
我後續也會再寫一篇 rethinkdb 的簡易教學(用法太特別了,跟SQL完全不同)

環境

  • OS : Debian 10
  • VMware Workstation 15 Player

安裝流程

安裝 NVM

開始安裝和設定 NPM

  • mkdir ~/.npm-global
  • 安裝 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

安裝 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 專案
  • 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
      9
      2020-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
    • stf local
    • 如果是要開放遠端連線
      • stf local --cleanup --public-ip 192.168.137.129 --group-timeout 900 --allow-remote
      • 把 192.168.137.129 改成你的 IP
  • 打開瀏覽器輸入 localhost:7100
    • 成功的話可以看這個畫面,任意輸入名稱跟信箱即可登入

參考