前言
不論是前面分享過的《開源雲真機平台-Sonic應用實踐》,還是《開源測試平台橫向測評系列「流馬」篇:測試界的“木牛流馬”》、《一站式開源持續測試平台Metersphere》,似乎都會用到一些如JDK、ADB、MySQL、Docker、Python等各類環境,像一些前後端分離項目可能還會用到NodeJS。環境搭建是一切開發調試、編譯建構、自動化測試的前提,也是開發測試人員必不可少的基礎技能。但是很多平台工具往往會卡在看似簡單的環境部署環節,甚至影響繼續下去的信心。所謂工欲善其事必先利其器,高效的搭建效率往往能提供一個好的開始,而好的開始是成功的一半!
本文将以Linux為重點搭建視角,基礎環境搭建主要涉及以下方面:
- 程式運作環境:JDK、Android-SDK、Python、Go
- 容器/容器編排工具:Docker、docker-compose
- 代碼管理:Git、Gitlab;
- 資料庫:MySQL、MongoDB、Redis
- 代理伺服器:Nginx
- 前端環境:NodeJS
- Web應用伺服器:Tomcat
注:
以上部分工具的安裝及使用在過往文章中有過不同程度的介紹,涉及該部分的内容将會給出文章連結,大家可以點選連結跳轉檢視,不再重複;
如果沒有特别指代系統的,均為Linux(CentOS7)系統,Windows&Mac也會捎帶提及,并特别注明;
文章重點介紹搭建過程,不會過多涉及具體使用;
另外,有很多工具使用的是腳本安裝,可以通過source指令來執行腳本,如"source jdk_install.sh"而不是"./xxx.sh",這樣可以避免再執行"source /etc/profile"指令來重新加載環境變量,具體原因及原理可參考《解決shell腳本中"source /etc/profile"重載配置檔案不生效的問題》
編譯、建構工具:gcc、make
由于很多軟體如nginx、python、redis等都依賴gcc的編譯以及make的打包、安裝,是以把這塊内容放在了最前面。關于gcc和make之間的差別與聯系:
- gcc是編譯器、而make不是,make是依賴于Makefile來編譯多個源檔案的工具,在Makefile裡同樣是用gcc(或者别的編譯器)來編譯程式;
- gcc是編譯一個檔案,而make是編譯多個源檔案的工程檔案的工具。 make是一個指令工具,是一個解釋makefile中指令的指令工具;
- gcc是編譯工具,make是定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要後編譯,也就是說make是調用gcc的;
一、GCC
GCC(GNU Compiler Collection)是由GNU開發的程式設計語言譯器。GNU編譯器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go語言前端,也包括了這些語言的庫。
1.安裝gcc
安裝gcc(一般使用yum指令預設安裝的gcc是4.8.5的版本):
yum -y install gcc-c++
安裝完成後,可以通過"gcc -v"檢視版本号:
2.更新gcc
千萬不要以為安裝完gcc就可以高枕無憂了,上述預設安裝的gcc是4.8.5的版本,經過多次親身嘗試,該版本在很多軟體的編輯過程中都可能會報錯,需要高版本的gcc才行。可以通過如下方式更新gcc,推薦7.3版本。
yum -y install centos-release-scl
# 更新到9.1版本
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
注意:部分軟體的編譯,9.3.1可能版本過高、仍然可能編譯不過,可以将上述指令中的9改為8或7就可以安裝激活8.x.x或7.x.x版本的gcc了
# 如果是想更新到7.3版本,則使用如下指令
yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
scl enable devtoolset-7 bash
通過"gcc -v"檢視版本号為7.3.1版本:
二、Make
用來維護程式子產品關系和生成可執行程式的建構工具,它可以根據程式子產品的修改情況重新編譯連結生成中間代碼或最終的可執行程式。可以了解為make就是一個gcc/g++的排程器,通過讀入一個檔案(預設檔案名為Makefile或者makefile),執行一組以gcc/g++為主的shell指令序列。輸入檔案主要用來記錄檔案之間的依賴關系和指令執行順序。
1.安裝make
yum install -y make
可以通過"make -v"指令驗證是否安裝成功,安裝成功會出現如下提示:
2.更新make
如編譯過程中報如下錯誤"These critical programs are missing or too old: make",則是因為make版本過低,需要更新make。
以更新make到4.3版本為例
① 下載下傳解壓make
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz # 下載下傳高版本make
tar -xvf make-4.3.tar.gz # 解壓後會生成make-4.3的目錄
② 建立編譯目錄
cd make-4.3
mkdir build
cd build
③ 配置編譯環境
../configure --prefix=/opt/make-4.3 # 配置編譯目錄
④ 編譯
編譯成功後,make-4.3的目錄下會生成一個build.sh的檔案
但build.sh執行時需要依賴build.cfg檔案,而build.cfg檔案是生成在build目錄下,是以依然需要在build目錄下然後執行build.sh
cd build
../build.sh
⑤ 安裝
make install
make install完成後,此時/opt目錄下即生成make-4.3目錄及相關檔案
⑥ 替換原有make
mv /usr/bin/make /usr/bin/make-3.82
cp /opt/make-4.3/bin/make /usr/bin/make
make -v
檢視版本,已更新為4.3
背景程式運作環境:java、python、go
一、JDK
1.下載下傳JDK
注意事項:需提前下載下傳好JDK安裝包,并與安裝腳本檔案放于同一目錄
JDK1.8安裝包位址:https://share.weiyun.com/mKDxXd1x
JDK安裝腳本位址:https://share.weiyun.com/6JMLvSyK
2.安裝JDK
# 執行shell腳本,安裝JDK
source jdk_install.sh
腳本内容如下,也可以建立一個jdk_install.sh檔案,并複制粘貼以下内容:
#!/bin/bash
cur_pass=`pwd`
jdk_install_file=$cur_pass"/jdk_install_process"
echo "=====`date`===start JDK install !!!!=====" >>$jdk_install_file
if [ -d "/usr/lib/jdk1.8.0_45" ];then
echo "=====`date`===JDK install over !!!!=====" >>$jdk_install_file
exit 0
fi
if [ ! -f "./jdk-8u45-linux-x64.gz" ];then
echo "=====`date`===JDK install pkg not exists !!!!=====" >>$jdk_install_file
exit -1
fi
`tar zxf jdk-8u45-linux-x64.gz`
`mv jdk1.8.0_45 /usr/lib/`
echo "export JAVA_HOME=/usr/lib/jdk1.8.0_45" >>/etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME\"/bin\"" >>/etc/profile
echo "=====`date`=== JDK install SUCCESS !!!!=====" >>$jdk_install_file
3.測試是否安裝成功
java -version
出現以下内容表示安裝成功:
二、Android-SDK(ADB)
可參考之前的文章:《如何在Linux快速搭建一套ADB環境》
三、Python
3.1 Python3
可參考之前的文章:《Linux下一鍵安裝Python3&更改鏡像源&虛拟環境管理技巧》
3.2 Python2
可參考之前的文章:《Linux系統自帶Python2&yum的解除安裝及重裝》
四、Go
1.安裝golang運作環境
① 建立go檔案夾
cd /home
mkdir go
② 下載下傳go壓縮包并解壓縮
https://golang.google.cn/dl/,選擇對應系統下載下傳檔案
也可以通過wget指令下載下傳:
wget https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz
tar -xvf go1.19.1.linux-amd64.tar.gz
③ 添加到環境變量
編輯/etc/profile,添加如下内容:
export GO_HOME=/home/golang/go
export PATH=$PATH:$GO_HOME/bin
④ 重載環境變量
source /etc/profile
2.驗證是否安裝成功
go --help
出現以下資訊表示安裝配置成功:
docker環境
一、docker
官方位址:https://docs.docker.com/
Docker 是一個基于go語言開發的開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實作虛拟化。
1.安裝docker的幾種方式
1)安裝最新版本docker
① 先解除安裝舊版本的docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
② 指定Docker下載下傳源(可選,适用于首次安裝)
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
③ 安裝Docker(預設安裝最新版本)
yum install -y docker-ce docker-ce-cli containerd.io
④ 驗證是否安裝成功
docker version
2)安裝指定版本的docker
yum list docker-ce --showduplicates | sort -r # 檢視所有可用版本
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io # 安裝指定版本
3)通過腳本一鍵安裝docker
腳本内容如下:
#!/bin/bash
echo"set default docker install repo"
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
echo"install docker ..."
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl status docker
2.啟動docker
systemctl start docker # 啟動服務
systemctl status docker # 檢視狀态
systemctl stop docker # 停止服務
systemctl restart docker # 重新開機服務
二、docker-compose
Docker-Compose項目是Docker官方的開源項目,負責實作對Docker多容器編排管理系統。使用 Docker-compose,可以用一個 YAML 檔案定義一組要啟動的容器,以及容器運作時的屬性。 Docker-Compose的工程配置檔案預設為docker-compose.yml
項目位址:https://github.com/docker/compose
很多項目如sonic、metersphere、流馬等都提供了docker-compose.yml檔案,通過docker-compose即可實作傻瓜式一鍵安裝。
1.使用curl指令安裝(推薦)
curl -L "https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
2.使用PIP安裝
需提前安裝Python環境
pip install -U docker-compose
代碼管理
一、Git
Linux上Git的安裝較為簡單,通過yum指令一鍵安裝即可,不需要配置環境變量。
yum install git -y
通過"git --version"檢視版本,出現版本号即說明安裝成功
[root@localhost ~]# git --version
git version 1.8.3.1
二、Gitlab
關于Gitlab的安裝部署、自動備份、倉庫遷移可以檢視之前分享過的《私有化代碼倉庫Gitlab的落地與應用(一)》;
關于測試代碼如何接入Gitlab可以檢視《Gitlab的落地與應用(二)測試代碼接入Gitlab實踐》;
資料庫:mongodb、mysql、redis
一、MongoDB
可參考之前的文章:《測開必備技能之MongoDB的安裝(Windows&Linux&MacOS)》
二、Redis
可參考之前文章:《Windows&Linux&MacOS如何快速搭建Redis》
注意:redis-6.0.x的版本,gcc4.8.5可能會編譯不過,可以通過上述提供的更新gcc的方法将gcc更新到7.3.1,再次執行編譯安裝。
三、MySQL
推薦使用docker的安裝方式,簡單快捷,一鍵搭建。使用起來和正常方式安裝的MySQL沒有什麼差別,畢竟大多數隻是為了讓項目跑起來、能正常連接配接和使用MySQL,又不是測試其性能。
官網位址:https://hub.docker.com/_/mysql
# 拉取鏡像,mysql後帶上版本号即可下載下傳指定版本的鏡像,如mysql:5.7.33
# 不帶版本号預設下載下傳最新的
docker pull mysql
# 運作容器
# -p 端口映射,-d背景運作,--name 容器名稱,-e設定root使用者密碼
docker run -d -e MYSQL_ROOT_PASSWORD=123456 --name=mymysql -p 3307:3306 mysql
# 進入mysql容器
docker exec -it mysql sh
# 登入mysql
mysql -uroot -p123456
mysql指令行操作
使用工具連接配接mysql資料庫
代理工具:Nginx
一、Linux部署
1.下載下傳安裝nginx
安裝包下載下傳位址:https://share.weiyun.com/uhffdijl
腳本下載下傳位址:https://share.weiyun.com/HLuVRTO2
推薦使用腳本方式安裝,下載下傳連結是1.8.0的版本,如果安裝其他版本,則把腳本内版本号改為對應版本号即可。腳本内容如下:
#!/bin/bash
# author by jigang.chen
cd /home
echo "安裝Nginx相關依賴環境">>nginx_install.log
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
if [ -f nginx-1.18.0.tar.gz ];then
echo "解壓Nginx壓縮包">>nginx_install.log
tar zxvf nginx-1.18.0.tar.gz
else
echo "下載下傳nginx">>nginx_install.log
wget http://nginx.org/download/nginx-1.18.0.tar.gz
echo "解壓縮nginx">>nginx_install.log
tar zxvf nginx-1.18.0.tar.gz
fi
cd /home/nginx-1.18.0
echo "配置nginx">>nginx_install.log
./configure --prefix=/usr/local/nginx
echo "make && make install">>nginx_install.log
make&&make install
echo "配置nginx環境變量">>nginx_install.log
echo "export PATH=\$PATH:/usr/local/nginx/sbin">>/etc/profile
source /etc/profile
echo "======nginx install success !======">>nginx_install.log
将腳本檔案和安裝包放于同一目錄下,執行安裝:
source nginx_install.sh
2.驗證是否安裝成功
通過"nginx -v"指令檢視版本,出現版本号說明安裝成功
[root@localhost ~]# nginx -v
nginx version: nginx/1.16.1
前端程式運作環境:NodeJS
一、Windows部署
Windows版下載下傳位址(騰訊微雲):
https://share.weiyun.com/2PpWyXkz
臨時更換淘寶鏡像源
npm --registry https://registry.npm.taobao.org install node-sass(要安裝的子產品)
永久更換淘寶鏡像源
npm config set registry https://registry.npm.taobao.org
npm config get registry # 檢視是否更換成功
安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
二、Linux部署
1)下載下傳并解壓檔案
node.js安裝包騰訊微雲下載下傳連結:https://share.weiyun.com/fAZpTbW5
tar -xvf node-v16.17.0-linux-x64.tar.xz # 解壓壓縮包
mv node-v16.17.0-linux-x64 node16 # 将目錄名改為node16
2)配置環境變量
編輯/etc/profile,檔案最後添加如下内容:
export NODE_HOME=/home/node16
export PATH=${PATH}:${NODE_HOME}"/bin"
export NODE_PATH=${PATH}:${NODE_HOME}"/lib/node_modules"
3)重載環境變量
source /etc/profile
npm --version # 驗證是否安裝成功
4)配置鏡像源
npm config set registry https://registry.npm.taobao.org
npm config get registry # 檢視是否更換成功
npm install -g cnpm --registry=https://registry.npm.taobao.org # 安裝cnpm
Web應用伺服器:Tomcat
Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬于輕量級應用伺服器,在中小型系統和并發通路使用者不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。像一些如Jenkins、jira應用就需要依賴Tomcat容器。
一、Windows安裝
1.下載下傳
官網:https://tomcat.apache.org/,選擇合适的版本下載下傳即可
也可以使用騰訊微雲9.0.43版本快捷下載下傳位址:https://share.weiyun.com/AjDH6CON
2.解壓
下載下傳後,解壓壓縮包,會得到如下檔案夾及檔案
3.上傳應用
随後将要運作的項目的war包上傳至webapps目錄下,即可通過前端頁面通路,例如Jenkins的war包:
4.啟動Tomcat
啟動檔案startup.bat在bin目錄下,輕按兩下即可啟動
二、Linux安裝
1.下載下傳
Linux和Windows用同一個安裝包,下載下傳下來上傳到Linux伺服器
2.解壓
unzip apache-tomcat-9.0.43.zip
解壓成功後會得到如下檔案:
3.上傳應用
将要運作的項目的war包上傳至webapps目錄下,即可通過前端頁面通路,例如Jenkins的war包。
4.啟動Tomcat
啟動腳本在bin目錄下,剛解壓後的腳本沒有執行權限,是以先要賦予sh腳本執行權限
cd bin # 進入bin目錄
chmod +x *.sh # 給bin目錄下所有sh結尾的腳本賦予執行權限
./startup.sh # 啟動Tomcat
5.浏覽器通路
http://192.168.1.123:8080/
總結
以上就是各個基礎環境的搭建過程,包含了背景程式運作環境:java、go、python,前端程式運作環境:nodejs,資料庫環境:mysql、redis、mongodb,容器運作環境:docker,編譯工具:gcc、make,web應用伺服器:Tomcat,代理轉發工具:nginx,基本上市面上所有程式的運作都離不開這些基礎環境。環境搭建是每個開發測試人員的必備技能,也是最基礎的環節。
總體内容比較多,也不是每個都會用到,是以也不需要全部記住。大家可以先收藏,當做技術手冊來用,後續用到、想不起來的的時候來翻翻,知道怎樣解決問題就行了。