CMake rpm在/etc/init.d中安装文件
我想在中安装一个文件 /etc/init.d目录 我已经写了代码CMake rpm在/etc/init.d中安装文件,cmake,cpack,Cmake,Cpack,我想在中安装一个文件 /etc/init.d目录 我已经写了代码 INSTALL(FILES ${CMAKE_SOURCE_DIR}/app/script/appd DESTINATION /etc/init.d/appd) 但当我使用cmake运行打包代码时,我得到了一个错误 CMake Error at /home/vivek/workspace/app/build/standalone/cmake_install.cmake:54 (FILE): file cannot crea
INSTALL(FILES ${CMAKE_SOURCE_DIR}/app/script/appd DESTINATION /etc/init.d/appd)
但当我使用cmake运行打包代码时,我得到了一个错误
CMake Error at /home/vivek/workspace/app/build/standalone/cmake_install.cmake:54 (FILE):
file cannot create directory: /etc/init.d/appd. Maybe need
administrative privileges.
如何将cmake设置为在/etc/init.d目录中安装文件?您不能。您唯一能做的就是要求用户使用管理权限为您的应用程序运行
makeinstall
此外,您可以尝试检测是否存在
sudo
命令和add_custom_command()
,这将使用sudo安装您的文件。您可以这样做,但可能需要显式设置:
set(CPACK_SET_DESTDIR ON)
之前:
include(CPack)
在您的CMakeLists.txt文件中。(只有在2.8.3之前的CMake/CPack上的旧版本才需要执行此操作)
需要这样做的原因是,您正在指定一个完整路径名作为一个已安装文件的目标。为了在打包阶段正确地执行此操作,CPack需要在其“makeinstall”调用中使用DESTDIR环境变量
出于向后兼容性的原因,默认情况下我们不会自动执行此操作
但是,该错误在2.8.3版中得到了修复,因此可以通过使用完整路径名的安装规则透明地自动完成:
希望您可以为rpm软件包使用CPACK\u SET\u DESTDIR to ON,或者使用包含自动修复的最新版本的CMake/CPACK