要在别人空白的服务器上安装环境和部署代码,用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 "[email protected]") 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