运行的环境 (系统版本,jdk版本,tomcat版本 )
1.centos6.5 及以上 或者 ubuntu
2.gcc6.1.0 及以上(安装见gcc6.1.0安装文档)
直接贴上脚本说明吧,到时只要将脚本复制,按照下文中的说明进行修改即可。
两个核心安装脚本:common.sh,install.sh
先看看install.sh执行了什么指令:
#!/bin/bash
source ./common.sh
if [ $UID -ne 0 ]; then
echo "用root权限执行!"
echo "sudo $0"
exit 1
fi
echo "你的系统是: "$g_system
#安装基础工具
#安装poco 1.6.0 依赖
if [ $g_system == "centos" ]; then
yum install make -y
yum install cmake -y
elif [ $g_system == "ubuntu" ]; then
apt-get install make -y
apt-get install cmake -y
elif [ $g_system == "macos" ]; then
echo "mac os 商处于调试阶段"
else
echo "未识别系统"
fi
#安装 poco
./poco.sh
#安装 taiji,安装 taiji 必须安装 poco
./taiji.sh
#安装 pcap
#./pcap.sh
#安装 gtest
./gtest.sh
#安装rabbitmq-c
#./rabbitmq.sh
#安装snmp++
#if [ -x "${currentPath}/snmp++" ]; then
# cd ${currentPath}/snmp++
# ./snmpSet.sh
#fi
安装脚本用到的common.sh,其实接下来你会发现每个安装脚本都会用到他:其实这里推荐在source ./common.sh前先事先安装好make和cmake,通过查看下面脚本代码可以看到common.sh里需要用到。common里指定了安装目录为:/opt/cdk
,这里可以根据个人需要进行修改。查看install脚本,其实他主要执行了以下几个命令,
#安装 poco
./poco.sh
#安装 taiji,安装 taiji 必须安装 poco
./taiji.sh
#安装 pcap
#./pcap.sh
#安装 gtest
./gtest.sh
#安装rabbitmq-c
#./rabbitmq.sh
#安装snmp++
#if [ -x "${currentPath}/snmp++" ]; then
# cd ${currentPath}/snmp++
# ./snmpSet.sh
#fi
这里需要注意的是,需要对脚本里的一些配置进行修改,比如这里的poco.sh,
代码里可以看到需要指定common.sh和CDK的路径,其他脚本无需做此修改,如有需要可打开修改。
poco.sh代码:
#!/bin/bash
source /home/ceshi/CDK/common.sh
cd /home/ceshi/CDK
echo "安装 poco"
#安装poco 1.6.0 依赖
if [ $g_system == "centos" ]; then
yum install make -y
yum install openssl-devel -y
yum install unixODBC-devel -y
yum install mysql-devel -y
install_cpp "${g_current_path}/poco" "poco" "v1.6.0" "poco-1.6.0-all"
elif [ $g_system == "ubuntu" ]; then
apt-get install make -y
apt-get install openssl -y
apt-get install libssl-dev -y
apt-get install libssl1.0-dev -y #兼容 deepin linux deepinlinux 默认版本 ssl 编译 poco 通不过
apt-get install unixodbc -y
apt-get install unixodbc-dev -y
apt-get install libmysqlclient* -y
install_cpp "${g_current_path}/poco" "poco" "v1.6.0" "poco-1.6.0-all"
elif [ $g_system == "macos" ]; then
echo "请先使用普通用户安装 brew,cmake,openssl 基本工具"
echo "安装完毕继续请输入 yes"
read result
if [ $result != "yes" ]
then
exit
else
echo "继续安装 poco"
fi
cmake_install_cpp "${g_current_path}/poco" "poco" "v1.6.0" "poco-1.6.0-all"
else
echo "未识别系统"
fi
common.sh代码:
#!/bin/bash
#============可以修改的部分================
#安装路径
g_dest_path=/opt/cdk
#g_dest_path=/opt/devbus
#全局变量,系统的名字 "ubuntu" "centos"
g_system="centos"
#==========================================
#当前变量
g_current_path=`pwd`
#适用于 cmake ../ -DCMAKE_INSTALL_PREFIX="/xxx/xxxx" make make install 安装的库
#CMAKE_INSTALL_PREFIX 已经按照 cdk 的管理包规则设定,不能改写。其他的要传的变量可以通过一个字符串传进去
#例如:
#cmake_install_cpp "${g_current_path}/rabbitmq-c" "rabbitmq-c" "v0.8.1" "rabbitmq-c" "-DCMAKE_INSTALL_LIBDIR='lib' -DXXX=abc"
cmake_install_cpp()
{
proPath=$1
proName=$2
version=$3
subProName=$4
cmake_args=$5
srcPath=${proPath}/${version}/${subProName}
dest_path=${g_dest_path}/${proName}/${version}
# 检查是否已安装
if [ -x "${dest_path}" ]; then
echo "===================================="
echo "${proName} ${version} 已安装"
echo "===================================="
return 0
fi
# 检查安装源是否存在
if [ ! -x "${srcPath}" ]; then
echo "===================================="
echo "${proName} ${version} 安装源不存在"
echo "===================================="
return 0
fi
# 开始安装
cd ${srcPath}
build="cdkbuild"
#清空原目录
if test -d ${build}
then
rm ${build} -rf
fi
mkdir ${build}
cd ${build}
cmake ../ -DCMAKE_INSTALL_PREFIX=${dest_path} ${cmake_args}
make -j2
make install
echo "===================================="
echo "${proName} ${version} 安装成功"
echo "===================================="
}
#适用于 ./configure --prefix="xxx" make make install 安装的库
#--prefix 已近按照 cdk 管理包写好了,不能进行更改
install_cpp()
{
proPath=$1
proName=$2
version=$3
subProName=$4
srcPath=${proPath}/${version}/${subProName}
dest_path=${g_dest_path}/${proName}/${version}
# 检查是否已安装
if [ -x "${dest_path}" ]; then
echo "===================================="
echo "${proName} ${version} 已安装"
echo "===================================="
return 0
fi
# 检查安装源是否存在
if [ ! -x "${srcPath}" ]; then
echo "===================================="
echo "${proName} ${version} 安装源不存在"
echo "===================================="
return 0
fi
# 开始安装
cd ${srcPath}
./configure --prefix=${dest_path}
make clean
make -j2
make install
echo "===================================="
echo "${proName} ${version} 安装成功"
echo "===================================="
}
相关注意事项
1.安装CDK出错后再安装需要回滚之前的安装
rm -rf /opt/cdk/
./install.sh
2.某个模块模块出错不需要全部回滚,如taiji模块出错,操作如下
rm -rf /opt/cdk/taiji
./taiji.sh
功能验证建议
1.查看/opt/cdk目录下各个模块下是否生成相应的头文件及基础库