一迁央,安裝stf
首先要安裝node
踩坑
node 版本
一般安裝node,都是直接brew 安裝的
brew install node
這邊默認(rèn)安裝的版本比較高司抱,而stf對node的最新版本沒有做到完美兼容,所以我們需要安裝舊版本的node燎竖,以8.x為佳
在github上看址芯,很多人題給作者的問題,作者也會回復(fù)了诚纸,建議使用8.x
報錯bufferutil@1.3.0 install: node-gyp rebuild
我在安裝過程中主要是遇到這個問題撰筷,報錯如下:
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/Users/dongshichao/.nvm/versions/node/v8.11.0/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:336:16)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Darwin 17.5.0
gyp ERR! command "/Users/dongshichao/.nvm/versions/node/v8.11.0/bin/node" "/Users/dongshichao/.nvm/versions/node/v8.11.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/dongshichao/.nvm/versions/node/v8.11.0/lib/node_modules/stf/node_modules/bufferutil
gyp ERR! node -v v8.11.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! bufferutil@1.3.0 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bufferutil@1.3.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/dongshichao/.npm/_logs/2018-12-17T15_00_38_264Z-debug.log
我一開始node版本是10.x,后來安裝報上面的錯
后來我在github上看到作者給別人的回復(fù)畦徘,建議使用8.x毕籽,我剛換8.11后問題依然存在。
后來又安裝8.14井辆,使用8.14安裝成功
最終关筒,我的版本是
安裝nvm
nvm是node版本管理工具,為了解決node各種版本存在不兼容現(xiàn)象杯缺,nvm是讓你在同一臺機器上安裝和切換不同版本的node的工具蒸播。
安裝nvm
$ brew install nvm
安裝完成后,修改環(huán)境變量
進(jìn)入當(dāng)前用戶的Home目錄
$ cd ~
編輯.bash_profile文件
$ vim .bash_profile
按 i 進(jìn)入編輯模式
在文件里添加以下內(nèi)容
export NVM_DIR="$HOME/.nvm"
# This loads nvm
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm bash_completion
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
然后按 esc
退出編輯模式
按:wq
保存并退出
輸入以下命令萍肆,更新配置過的環(huán)境變量
$ source .bash_profile
查看nvm版本
$ nvm --version
如果出現(xiàn)版本號袍榆,則說明安裝成功
查看本地node的所有版本
$ nvm list
切換到指定的node版本
$ nvm use 10.19
卸載指定的node版本
$ nvm uninstall 版本號
安裝最新的node穩(wěn)定版本
$ nvm install --lts
查看node的所有的版本
$ nvm ls-remote
使用node指定版本執(zhí)行指定文件
$ nvm exec 版本號 node 要執(zhí)行的文件路徑
注意:如果node
安裝了好幾個版本,在安裝stf的時候塘揣,有版本高的會報錯包雀,這個時候,把.nvm 安裝的目錄直接刪除了勿负,重新安裝,直接裝8.x版本的
nvm的注意事項:Mac 安裝nvm馏艾、刪除nvm
安裝&更新
1.使用 cURL 安裝腳本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
2.使用 Wget 安裝腳本
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
驗證安裝
command -v nvm
-
驗證成功
image.png -
驗證失敗
image.png
- 系統(tǒng)可能沒有
.bash_profile file
設(shè)置命令的。只需創(chuàng)建一個touch ~/.bash_profile
并再次運行安裝腳本奴愉,重新啟動終端實例琅摩。
2.打開.bash_profile
并添加以下代碼行:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
然后 source 一下 .bash_profile
source ~/.bash_profile
刪除 nvm(很重要)
- 卸載 nvm
nvm unload
- 手動卸載
$ rm -rf "$NVM_DIR"
二,使用homebrew方式安裝終端中輸入指令
1.安裝依賴
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
2.安裝ADB
brew cask install android-platform-tools
3.安裝STF
sudo npm install --unsafe-perm --verbose -g stf
為啥啟動stf的時候要用--unsafe-perm锭硼?
npm 出于安全考慮不支持以 root 用戶運行房资,即使你用 root 用戶身份運行了,npm 會自動轉(zhuǎn)成一個叫 nobody 的用戶來運行檀头,而這個用戶幾乎沒有任何權(quán)限轰异。這樣的話如果你腳本里有一些需要權(quán)限的操作岖沛,比如寫文件(尤其是寫 /root/.node-gyp),就會崩掉了搭独。
為了避免這種情況婴削,要么按照 npm 的規(guī)矩來,專門建一個用于運行 npm 的高權(quán)限用戶牙肝;要么加 --unsafe-perm 參數(shù)唉俗,這樣就不會切換到 nobody 上,運行時是哪個用戶就是哪個用戶配椭,即使是 root虫溜。
啟動STF
1.首先啟動rethinkdb
rethinkdb
2.新建一個終端連接ADB
adb start-server
adb connect 10.200.241.215
adb devices
3.新建一個終端啟動stf
DEBUG=adb* stf local --allow-remote
如果遠(yuǎn)程訪問執(zhí)行下面這個命令
stf local --public-ip 本機IP
4.打開瀏覽器輸入地址看到界面就啟動成功了
http://localhost:7100/
遇到已知問題和解決方案
1.啟動rethinkdb端口占用導(dǎo)致啟動不起來,之前電腦上安裝有jenkins占用端口號股缸,停止jenkins服務(wù)就 可以
2.啟動stf時候使用命令不同導(dǎo)致啟動不起來