CMake:在使用cpack创建的deb包中保留文件权限?

时间:2014-07-25 01:02:29

标签: cmake cpack

我使用cpack创建一个deb包,但它没有保留目标计算机上的原始权限。这导致我的应用程序的用户在安装后无法执行它。

1 个答案:

答案 0 :(得分:0)

您可以使用PERMISSIONS参数指定权限。

还有USE_SOURCE_PERMISSIONS,但我从未使用过它。

这是一个明确的示例PERMISSIONS参数:

# Install monit configuration
INSTALL( FILES ${CMAKE_SOURCE_DIR}/ext_modules/monit.d/${CMAKE_PROJECT_NAME}
         DESTINATION ${CMAKE_PACKAGE_TARGET_SYSCONFIG_DIR}/monit.d
         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # 755

# Install application
INSTALL( PROGRAMS ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}
         DESTINATION ${CMAKE_PACKAGE_TARGET_USER_BINARIES_DIR}
         PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) # 775