需要解決問題:調研openstf/stf(https://github.com/openstf/stf),搭建docker(https://www.docker.com/)環境。
拆解為:
- docker基本使用
- stf 如何安裝
逐個來看:
1. docker基本使用
- 理解總體框架
- 理解基本概念:使用中,個人理解主要分清鏡像和容器兩個的概念。(docker:從入門到實踐)
- 基本命令(詳細參見docker doc)
docker images //查看本地鏡像 docker ps -a //查看本地容器 docker run -it --name <指定容器名> <鏡像名> //create/start 某鏡像 docker exec -it <容器名> 指令 //進入某容器,指令一般為/bin/bash docker stop <容器名> docker rm <容器名> docker rmi <鏡像名> docker pull docker commit docker push
2. stf 如何安裝
stf 官方文檔關於如何install,只說明了mac os 和 windows。mac os使用Linux內核,參照該部分。
mac os:
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config npm install -g stf
brew 為os命令,linux中可使用對應包管理工具,實現以下前提。
查看Linux系統,使用對應包管理工具(與系統版本有關)cat /proc/version //linux 內核系統
lsb_release -a //linux 系統版本,各發行廠商在內核基礎上封裝
//ubuntu sudo apt-get install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config //rethinkdb zeromq protobuf 無法安裝
安裝rethinkdb,默認源無,需添加 https://www.rosehosting.com/blog/install-rethinkdb-on-ubuntu-14-04/sudo apt-get update
sudo apt-get upgrade
//添加鏡像源並更新
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
//實際安裝rethinkdb
sudo apt-get install rethinkdb
//驗證安裝成功
rethinkdb
安裝zeromq,鏡像源無,需源碼編譯安裝 https://maddigitiser.wordpress.com/2013/05/02/installing-zeromq-on-ubuntu-13-04/
sudo
apt-get
install
libtool autoconf automake uuid-dev build-essential
cd
~
wget https://archive.org/download/zeromq_4.1.4/zeromq-4.1.4.tar.gz
tar
zxvf zeromq-3.2.2.
tar
.gz &&
cd
zeromq-3.2.2
.
/configure
make
&&
make
install
//驗證安裝成功 https://gist.github.com/cdjhlee/b8e3c927a01b0948b42d
sudo ldconfig
ldconfig -p | grep zmq
#libzmq.so.4 (libc6,x86-64) => /usr/local/lib/libzmq.so.4
#libzmq.so (libc6,x86-64) => /usr/local/lib/libzmq.so
安裝protobuf,鏡像源無,需源碼編譯安裝 http://blog.csdn.net/xiexievv/article/details/47396725
wget https://github.com/google/protobuf/archive/v3.3.0.tar.gz
tar zxvf v3.3.0.tar.gz
cd protobuf-v3.3.0.tar.gz
./autogen.sh //生成./configure
./configure --prefix=/usr/local/protobuf //指定安裝目錄
make
make check
make install
//修改環境變量,添加以下內容
vi ~/.bash_profile
####### add protobuf lib path ########
#(動態庫搜索路徑) 程序加載運行期間查找動態鏈接庫時指定除了系統默認路徑之外的其他路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(靜態庫搜索路徑) 程序編譯期間查找動態鏈接庫時指定查找共享庫的路徑
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#執行程序搜索路徑
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序頭文件搜索路徑
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序頭文件搜索路徑
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路徑
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
######################################
//驗證安裝成功
protoc
安裝node,源碼安裝,make時間較久,40分鍾+
sudo chmod -R 755 node
$ cd node $ sudo ./configure $ sudo make $ sudo make install
//驗證node
node --version
//npm默認安裝,但版本較低,需要手動更新
npm install npm //執行緩慢后報錯,添加鏡像為國內淘寶鏡像后完成安裝
//驗證npm
npm -v
實際安裝過程踩坑無數,先記錄一二。
問題一:進入docker,未設置root密碼
sudo passwd
問題二:安裝protobuf,執行autogen報錯autoreconf not found
解決:缺少依賴,sudo apt-get install autoconf autogen(https://github.com/horst3180/arc-theme/issues/63)
問題三:源碼安裝node,git最新版本未pre,非穩定版,執行過程各種問題報錯
node download頁面,右鍵復制下載地址,wget穩定版本
問題四:安裝linuxbrew后使用brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config,安裝protobuf報錯python.h文件找不到,實際目錄存在該文件(http://blog.csdn.net/hello_orange/article/details/6184420)
這個問題始終沒有解決,猜測linuxbrew的問題,糾結很久后源碼安裝