Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake rpm在/etc/init.d中安装文件_Cmake_Cpack - Fatal编程技术网

CMake rpm在/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

我想在中安装一个文件 /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 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