让rpm安装/etc/init.d中的文件



我想在/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.

您可以这样做,但是您可能需要显式地设置:

set(CPACK_SET_DESTDIR ON)
:前

include(CPack)

在你的CMakeLists.txt文件。(您只需要在CMake/CPack上的旧版本,2.8.3之前执行此操作)

您需要这样做的原因是您指定了一个完整的路径名作为您安装的文件之一的DESTINATION。为了在打包阶段正确地做到这一点,CPack需要在它的"make install"调用中使用DESTDIR环境变量。

出于向后兼容性的原因,我们没有默认自动执行此操作。

但是,这个错误在2.8.3版本中被修复了,所以它可以透明地自动完成,并使用完整的路径名安装规则:

http://public.kitware.com/Bug/view.php?id=7000

希望您可以将CPACK_SET_DESTDIR设置为ON,或者使用包含自动修复的最新版本的CMake/CPack。

你不能。你唯一能做的就是要求用户以管理员权限为你的应用运行make install

另外,您可以尝试检测sudo命令和add_custom_command()的存在,它们将使用sudo安装文件。

相关内容

最新更新