HOME> 家族联盟> 基础环境搭建,这一篇就够了!
{$vo.文章标题}
{$vo.文章标题}

基础环境搭建,这一篇就够了!

admin
2753

前言不论是前面分享过的《开源云真机平台-Sonic》,还是《流马测试平台》、《一站式开源持续测试平台Metersphere》,似乎都会用到一些如JDK、ADB、MySQL、Docker、Python等各类环境,像一些前后端分离项目可能还会用到NodeJS。环境搭建是一切开发调试、编译构建、自动化测试的前提,也是开发测试人员必不可少的基础技能。但是很多平台工具往往会卡在看似简单的环境部署环节,甚至影响继续下去的信心。所谓工欲善其事必先利其器,高效的搭建效率往往能提供一个好的开始,而好的开始是成功的一半!

本文将以Linux为重点搭建视角,基础环境搭建主要涉及以下方面:

程序运行环境:JDK、Android-SDK、Python、Go容器/容器编排工具:Docker、docker-compose代码管理:Git、Gitlab;数据库:MySQL、MongoDB、Redis代理服务器:Nginx前端环境:NodeJSWeb应用服务器: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的;一、GCCGCC(GNU Compiler Collection)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库。

1.安装gcc安装gcc(一般使用yum命令默认安装的gcc是4.8.5的版本):

代码语言:javascript复制yum -y install gcc-c++安装完成后,可以通过"gcc -v"查看版本号:

2.升级gcc千万不要以为安装完gcc就可以高枕无忧了,上述默认安装的gcc是4.8.5的版本,经过多次亲身尝试,该版本在很多软件的编辑过程中都可能会报错,需要高版本的gcc才行。可以通过如下方式升级gcc,推荐7.3版本。

代码语言:javascript复制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了

代码语言:javascript复制# 如果是想升级到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代码语言:javascript复制yum install -y make可以通过"make -v"命令验证是否安装成功,安装成功会出现如下提示:

2.升级make如编译过程中报如下错误"These critical programs are missing or too old: make",则是因为make版本过低,需要升级make。

以升级make到4.3版本为例

① 下载解压make代码语言:javascript复制wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz # 下载高版本make

tar -xvf make-4.3.tar.gz # 解压后会生成make-4.3的目录② 创建编译目录代码语言:javascript复制cd make-4.3

mkdir build

cd build③ 配置编译环境代码语言:javascript复制../configure --prefix=/opt/make-4.3 # 配置编译目录④ 编译编译成功后,make-4.3的目录下会生成一个build.sh的文件

但build.sh执行时需要依赖build.cfg文件,而build.cfg文件是生成在build目录下,因此依然需要在build目录下然后执行build.sh

代码语言:javascript复制cd build

../build.sh⑤ 安装代码语言:javascript复制make installmake install完成后,此时/opt目录下即生成make-4.3目录及相关文件

⑥ 替换原有make代码语言:javascript复制mv /usr/bin/make /usr/bin/make-3.82

cp /opt/make-4.3/bin/make /usr/bin/make代码语言:javascript复制make -v查看版本,已更新为4.3

后台程序运行环境:java、python、go一、JDK1.下载JDK注意事项:需提前下载好JDK安装包,并与安装脚本文件放于同一目录

JDK1.8安装包地址:https://share.weiyun.com/mKDxXd1x

JDK安装脚本地址:https://share.weiyun.com/6JMLvSyK

2.安装JDK代码语言:javascript复制# 执行shell脚本,安装JDK

source jdk_install.sh脚本内容如下,也可以新建一个jdk_install.sh文件,并复制粘贴以下内容:

代码语言:javascript复制#!/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_file3.测试是否安装成功代码语言:javascript复制java -version出现以下内容表示安装成功:

二、Android-SDK(ADB)可参考之前的文章:《如何在Linux快速搭建一套ADB环境》

三、Python1.Python3可参考之前的文章:《Linux下一键安装Python3&更改镜像源&虚拟环境管理技巧》

2.Python2可参考之前的文章:《Linux系统自带Python2&yum的卸载及重装》

四、Go1.安装golang运行环境① 创建go文件夹

代码语言:javascript复制cd /home

mkdir go② 下载go压缩包并解压缩

https://golang.google.cn/dl/,选择对应系统下载文件

也可以通过wget命令下载:

代码语言:javascript复制wget https://golang.google.cn/dl/go1.19.1.linux-amd64.tar.gz

tar -xvf go1.19.1.linux-amd64.tar.gz③ 添加到环境变量

编辑/etc/profile,添加如下内容:

代码语言:javascript复制export GO_HOME=/home/golang/go

export PATH=$PATH:$GO_HOME/bin④ 重载环境变量

代码语言:javascript复制source /etc/profile2.验证是否安装成功代码语言:javascript复制go --help出现以下信息表示安装配置成功:

docker环境一、docker官方地址:https://docs.docker.com/

Docker 是一个基于go语言开发的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

1.安装docker的几种方式

1)安装最新版本docker

① 先卸载旧版本的docker

代码语言:javascript复制yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine② 指定Docker下载源(可选,适用于首次安装)

代码语言:javascript复制yum install -y yum-utils

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo③ 安装Docker(默认安装最新版本)

代码语言:javascript复制yum install -y docker-ce docker-ce-cli containerd.io

④ 验证是否安装成功

代码语言:javascript复制docker version

2)安装指定版本的docker

代码语言:javascript复制yum list docker-ce --showduplicates | sort -r # 查看所有可用版本

yum install docker-ce- docker-ce-cli- containerd.io # 安装指定版本

3)通过脚本一键安装docker

脚本内容如下:

代码语言:javascript复制#!/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 docker2.启动docker

代码语言:javascript复制systemctl start docker # 启动服务

systemctl status docker # 查看状态

systemctl stop docker # 停止服务

systemctl restart docker # 重启服务二、docker-composeDocker-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命令安装(推荐)代码语言:javascript复制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 --version2.方式二:使用PIP安装需提前安装Python环境

代码语言:javascript复制pip install -U docker-compose代码管理一、GitLinux上Git的安装较为简单,通过yum命令一键安装即可,不需要配置环境变量。

代码语言:javascript复制yum install git -y通过"git --version"查看版本,出现版本号即说明安装成功

代码语言:javascript复制[root@localhost ~]# git --version

git version 1.8.3.1二、Gitlab关于Gitlab的安装部署、自动备份、仓库迁移可以查看之前分享过的《私有化代码仓库Gitlab的落地与应用》;关于测试代码如何接入Gitlab可以查看《Gitlab的落地与应用(二)测试代码接入Gitlab实践》;数据库:mongodb、mysql、redis一、MongoDB1.Windows安装mongoDB1)下载安装包MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,可以从MongoDB官网下载安装, MongoDB 预编译二进制包下载地址:

https://www.mongodb.com/download-center/community

2)cmd命令行启动MongoDB① 启动MongoDB

代码语言:javascript复制\bin\mongod --dbpath d:\data\db # cmd命令行启动② 将MongoDB加入到Windows本地服务

代码语言:javascript复制mongod.exe --logpath d:\data\log\mongod.log --logappend --dbpath d:\data\db --serviceName MongoDB --install此时在Windows--运行窗口输入services.msc即可查看到MongoDB服务:

3)常用命令代码语言:javascript复制# cmd命令行MongoDB的常用命令

net start MongoDB # 启动MongoDB

net stop MongoDB # 停用MongoDB

\bin\mongod.exe --remove # 移除MongoDB4)通过配置文件启动MongoDB① 编辑mongodb.cfg配置文件

代码语言:javascript复制# mongod.cfg

# for documentation of all options, see:

# http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.

storage:

dbPath: D:\data\db

journal:

enabled: true

# engine:

# mmapv1:

# wiredTiger:

# where to write logging data.

systemLog:

destination: file

logAppend: true

path: D:\data\log\mongod.log

# network interfaces

net:

port: 27017

bindIp: 127.0.0.1② 将MongoDB安装目录下bin目录添加到环境变量(一般重启电脑后生效,可以在命令行任意目录使用mongod命令)

③ 命令行进入配置文件所在目录,通过配置文件启动MongoDB服务:

代码语言:javascript复制mongod.exe --config mongod.cfg5)测试连接MongoDB代码语言:javascript复制mongo.exe # cmd命令行连接mongodb连接成功后如下图所示:

2.Linux安装MongoDBmongodb下载地址:https://share.weiyun.com/JdYq57jU

安装脚本下载地址:https://share.weiyun.com/OhTuHoI9

1)脚本方式安装最快速的使用脚本一键安装mongodb,脚本内容如下:

代码语言:javascript复制#!/bin/bash

# author @jigang.chen

# MongoDB install

echo "MongoDB install action...">>mongodb_install.log

cd /home

if [ -f mongodb-linux-x86_64-4.0.18.tgz ]

then

`tar -xzf mongodb-linux-x86_64-4.0.18.tgz`

if [ -d mongodb-linux-x86_64-4.0.18 ]

then

echo "unpackage success!"

`mv mongodb-linux-x86_64-4.0.18 /usr/local/mongodb`

`mkdir -p /data/mongodb`

`mkdir /usr/local/mongodb/logs`

`touch /usr/local/mongodb/logs/mongodb.log`

else

echo "unpackage failed"

fi

else

echo "mongo file not exists"

fi

echo "config environment">>mogodb_install.log

echo "export MONGODB_HOME=/usr/local/mongodb">>/etc/profile

echo "export PATH=\$PATH:\$MONGODB_HOME\"/bin\"">>/etc/profile

chmod -R 777 /data/mongodb

source /etc/profile

echo "======mongodb install success !======">>mongodb_install.log代码语言:javascript复制source mongodb_install.sh # 执行安装2)手工方式安装脚本安装的好处是方便快捷,手工安装的好处是可以灵活配置,自由掌控安装过程

① 下载安装包

从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:

https://www.mongodb.com/download-center/community

② 解压压缩包

代码语言:javascript复制tar -zxvf mongodb-linux-x86_64-4.4.0.tgz

mv -r mongodb-linux-x86_64-4.4.0 /usr/local/mongodb③ 配置环境变量

代码语言:javascript复制vi /etc/profile

# 添加下面两行内容

export MONGODB_HOME=/usr/local/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile # 编辑完、保存后重新加载配置文件④ 创建数据目录和日志文件

代码语言:javascript复制cd /usr/local/mongodb

sudo mkdir -p data/db

sudo chmod -r 777 data/db

sudo mkdir logs

cd logs

touch mongodb.log⑤ 创建配置文件mongodb.conf

代码语言:javascript复制systemLog:

destination: file

path: /usr/local/mongodb/logs/mongodb.log

logAppend: true

processManagement:

fork: true

net:

bindIp: 0.0.0.0

port: 27017

setParameter:

enableLocalhostAuthBypass: false

storage:

dbPath: /data/mongodb

journal:

enabled: true

wiredTiger:

engineConfig:

cacheSizeGB: 4⑥ 启动MongoDB

代码语言:javascript复制cd /usr/local/mongodb/bin

./mongod -f mongodb.conf⑦ 测试连接MongoDB

代码语言:javascript复制mongo --port 27017 # 指定端口连接,默认host为127.0.0.1

mongo --host 192.168.1.123 --port 27017 # 指定host和端口连接

mongo 192.168.1.123:27017 # 指定host和端口连接,同上3.MacOS安装MongoDB1)下载安装包Mac系统的MongoDB的安装方式有brew和.tgz(与Linux安装方式类似)两种,本次是以.tgz包为例进行安装,所以需要先下载mongodb.tgz包。

下载地址:

https://www.mongodb.com/try/download/community

官方安装文档:

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/

2)创建日志及数据目录代码语言:javascript复制cd mongodb mkdir data # 创建数据存放目录

mkdir logs # 创建日志目录

cd logs

touch mongodb.log # 创建MongoDB日志输出文件记住,一定先创建数据存放目录、日志目录及文件,否则在启动时会报各种错,如下图:

3)创建MongoDB配置文件代码语言:javascript复制cd mongodb/bin

vi mongodb.conf # 在bin目录下创建MongoDB配置文件配置文件内容如下:

配置文件释义:

代码语言:javascript复制dbpath=/mongodb/data # 数据存放路径

logpath=/mongodb/logs/mongodb.log # 日志存放路径

logappend=true # 采用追加模式写入日志,默认

fork=true # 是否后台启动

port=27017 # MongoDB端口号,默认27017,也可以改成其他

journal=true # 启用日志文件,默认

quiet=false # 过滤掉无用的日志信息,true表示过滤,false为调试模式,不过滤4)配置环境变量代码语言:javascript复制# 在.zprofile添加如下两行

MONGODB_HOME=/mongodb

export PATH=$PATH:$MONGODB_HOME/bin

source /xxx/.zprofile # 重新加载配置文件,使生效5)启动MongoDB.tgz的安装的启动方式有两种,一种是命令行启动,一种是指定配置文件启动

① 命令行指定日志、数据路径启动

代码语言:javascript复制mongod --logpath /mongodb/logs/mongodb.log --dbpath /mongodb/data --fork② 指定配置文件启动

代码语言:javascript复制mongod -f mongodb.conf启动成功后如下图所示:

6)客户端连接数据库代码语言:javascript复制mongo # 不带任何参数,默认以27017端口进行连接

mongo -port 27017 # 指定连接端口,若服务端配置的是其他端口,则客户端连接时需指定端口号连接成功后如图所示:

测试数据库能否正常使用,可以看到数据库连接使用正常:

二、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

代码语言:javascript复制# 拉取镜像,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 -p123456mysql命令行操作

使用工具连接mysql数据库

代理工具:Nginx一、Linux部署1.下载安装nginx推荐使用脚本方式安装,脚本内容如下:

代码语言:javascript复制#!/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将脚本文件和安装包放于同一目录下,执行安装:

代码语言:javascript复制source nginx_install.sh2.验证是否安装成功通过"nginx -v"命令查看版本,出现版本号说明安装成功

代码语言:javascript复制[root@localhost ~]# nginx -v

nginx version: nginx/1.16.1前端程序运行环境:NodeJS一、Windows部署Windows版下载地址(腾讯微云):https://share.weiyun.com/2PpWyXkz

临时更换淘宝镜像源代码语言:javascript复制npm --registry https://registry.npm.taobao.org install node-sass(要安装的模块)永久更换淘宝镜像源代码语言:javascript复制npm config set registry https://registry.npm.taobao.org

npm config get registry # 查看是否更换成功安装cnpm代码语言:javascript复制npm install -g cnpm --registry=https://registry.npm.taobao.org二、Linux部署1)下载并解压文件node.js安装包腾讯微云下载链接:https://share.weiyun.com/fAZpTbW5

代码语言:javascript复制tar -xvf node-v16.17.0-linux-x64.tar.xz # 解压压缩包

mv node-v16.17.0-linux-x64 node16 # 将目录名改为node162)配置环境变量编辑/etc/profile,文件最后添加如下内容:

代码语言:javascript复制export NODE_HOME=/home/node16

export PATH=${PATH}:${NODE_HOME}"/bin"

export NODE_PATH=${PATH}:${NODE_HOME}"/lib/node_modules"3)重载环境变量代码语言:javascript复制source /etc/profile

npm --version # 验证是否安装成功4)配置镜像源代码语言:javascript复制npm config set registry https://registry.npm.taobao.org

npm config get registry # 查看是否更换成功

npm install -g cnpm --registry=https://registry.npm.taobao.org # 安装cnpmWeb应用服务器:TomcatTomcat 服务器是一个免费的开放源代码的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.解压代码语言:javascript复制unzip apache-tomcat-9.0.43.zip解压成功后会得到如下文件:

3.上传应用将要运行的项目的war包上传至webapps目录下,即可通过前端页面访问,例如Jenkins的war包。

4.启动Tomcat启动脚本在bin目录下,刚解压后的脚本没有执行权限,因此先要赋予sh脚本执行权限

代码语言:javascript复制cd bin # 进入bin目录

chmod +x *.sh # 给bin目录下所有sh结尾的脚本赋予执行权限

./startup.sh # 启动Tomcat5.浏览器访问http://192.168.1.123:8080/

总结以上就是各个基础环境的搭建过程,包含了后台程序运行环境:java、go、python,前端程序运行环境:nodejs,数据库环境:mysql、redis、mongodb,容器运行环境:docker,编译工具:gcc、make,web应用服务器:Tomcat,代理转发工具:nginx,基本上市面上所有程序的运行都离不开这些基础环境。环境搭建是每个开发测试人员的必备技能,也是最基础的环节

总体内容比较多,也不是每个都会用到,所以也不需要全部记住。大家可以先收藏,当做技术手册来用,后续用到、想不起来的的时候来翻翻,知道怎样解决问题就行了。。