要在别人空白的服务器上安装环境和部署代码,用cmake制作安装包,没怎么看懂。贴下来,有空了慢慢研究
首先要保证已经安装了cmake,要是没安装的话,使用下面脚本安装
sudo apt install cmake
1. 创建CMakeLists.txt,内容格式参照:
cmake_minimum_required( VERSION 2.8 )
project ( cloudweb )
set(LIBS_DIR ${CMAKE_SOURCE_DIR}/lib)
set(DOCS_DIR ${CMAKE_SOURCE_DIR}/doc)
include (InstallRequiredSystemLibraries)
set(_VERSION_MAJOR 1)
set(_VERSION_MINOR 0)
set(_VERSION_PATCH 0)
#说明要生成的是deb包
set(CPACK_GENERATOR "DEB")
SET(CPACK_BINARY_DEB "ON")
SET(CPACK_BINARY_STGZ "OFF")
SET(CPACK_BINARY_TZ "OFF")
SET(CPACK_BINARY_TGZ "OFF")
############下面是设置debian/control文件中的内容
#设置版本信息
set(CPACK_PACKAGE_VERSION_MAJOR "${_VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${_VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${_VERSION_PATCH}")
set(CPACK_SET_DESTDIR true)
set(CPACK_INSTALL_PREFIX "/usr/shineonStuido")
set(CPACK_PACKAGE_NAME "cloudweb")
#设置程序名,就是程序安装后的名字
set(CPACK_DEBIAN_PACKAGE_NAME "cloudweb")
#设置架构
#set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "")
#设置依赖
#set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libstdc++6, libdbus-1-3, libqt5dbus5, libqt5core5a, libqt5gui5, libqt5webkit5, libqt5network5, ssh, sshfs")
#set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libstdc++6, libdbus-1-3, libqt5dbus5, libqt5core5a, libqt5gui5, libqt5webkit5, libqt5network5, ssh, sshfs, mongodb")
#设置section
set(CPACK_DEBIAN_PACKAGE_SECTION "net")
#设置priority
set(CPACK_DEBIAN_PACKAGE_PRIORITY "Optional")
#设置description
set(CPACK_PACKAGE_DESCRIPTION "云媒体交互服务器,让你的演播室和观众沟通无障碍")
#设置联系方式
set(CPACK_PACKAGE_CONTACT "wuliming@shineon.cc")
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
"${LIBS_DIR}/preinst;${LIBS_DIR}/postinst;${LIBS_DIR}/postrm;${LIBS_DIR}/prerm")
#设置维护人
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "***@qq.com")
INSTALL(DIRECTORY cloudweb/ DESTINATION cloudweb
# PATTERN "static" EXCLUDE
# PATTERN "template" EXCLUDE
# PATTERN "video.js" EXCLUDE
# PATTERN "files" EXCLUDE
# PATTERN "psut" EXCLUDE
# PATTERN "thumb" EXCLUDE
# PATTERN "previews" EXCLUDE
# PATTERN "video.js" EXCLUDE
)
INSTALL(DIRECTORY VMDataServer/ DESTINATION VMDataServer)
#最后 别忘记最重要的 我们使用cpack工具来实现打包工作的
include(CPack)
2. 如图所示,把代码和CMakeLists.txt、lib放在一起(lib可以不要)
3. lib下面的文件,分别代表安装前后,卸载前后要执行的脚本
4. 在同级目录下mkdir build文件夹
5. 在build下执行以下命令:
cmake ../
make package
6. build下生成的deb文件就是目标包了
7. 使用以下脚本解压到目标目录(目标解压目录在CMakeLists.txt中配置)
dpkg -i cloudweb-1.0.0-Linux.deb