CppCMS程序自动安装

和前面Java程序自动安装思路一样,为什么不自己写个简单的脚本来组装这一切呢。工具当然好,不过了解幕后仍然是必要的,永远站在巨人的肩膀上和不要重复造车轮子这两句话有时候会阻碍优秀的程序员成长。

我的C++网站基于CppCMS库,采用CMake编译,目标部署平台是Ubuntu12.04 server(AMD64bit)。首先,在工程目录下,创建create_deploy.sh脚本。

#!/bin/bash

source ./tool.sh

removeFolder build
mkdir build
cd build
cmake ..
make
cd ..

removeFolder deploy
mkdir deploy
cp ./build/bin/cppweb ./deploy
cp ./kmconfig.js ./deploy
cd ./deploy
mkdir libs
cd libs
cp /usr/lib/libloki.so.0.1.7 ./
cp /usr/lib/libmongoclient.so ./
cp /usr/lib/libbooster.so.0.0.1 ./
cp /usr/lib/libcppcms.so.1.0.2 ./

cd ../../
cp ./install.sh ./deploy
cp ./tool.sh ./deploy

注意,此时我的开发机器上已经事先编译安装了cppcms库,mongodb client c++ driver 2.0和loki库。

该脚本的目的是创建deploy目录,并把需要的库放到libs子目录下,并且运行CMake命令编译出网站程序cppweb,然后复制到deploy目录下。

同时,还有两个事先准备好的脚本文件,tool.sh同前文,提供基本通用功能。install.sh是将libs目录下的库安装到目标机器上,并创建相应的链接。

install.sh脚本的内容如下:

#!/bin/bash

source ./tool.sh

installDpkg libboost1.48-all-dev
installDpkg libboost-thread1.48-dev
installDpkg libboost-regex1.48-dev
installDpkg libboost-filesystem1.48-dev
installDpkg libboost_system1.48-dev
#installDpkg libace-dev
installDpkg libcrypto++-dev


cp ./libs/* /usr/lib/
createLink /usr/lib/libloki.so.0.1.7 /usr/lib/libloki.so
createLink /usr/lib/libcppcms.so.1.0.2 /usr/lib/libcppcms.so.1
createLink /usr/lib/libcppcms.so.1 /usr/lib/libcppcms.so
createLink /usr/lib/libbooster.so.0.0.1 /usr/lib/libbooster.so.0
createLink /usr/lib/libbooster.so.0 /usr/lib/libbooster.so

使用方法很简单:

1.调用create_deploy.sh脚本生成deploy目录

2.复制deploy目录到目标机器,运行install.sh脚本

install.sh脚本还可以继续增强,将cppweb程序安装成ubuntu service。这里省略。



你可能感兴趣的:(CppCMS程序自动安装)