我的产品foo由一个库组成:libfoo.so
和一个可执行文件:foo
,它取决于libfoo.so
和第三方libbar.so
。
我使用CPack来获得包含lib/libfoo.so
和bin/foo
的foo的RPM。
但最终我无法安装包:rpm -ivh
抱怨所需的依赖:libfoo.so
。
我知道自动依赖解析发现foo
需要libfoo.so
,但安装包的目的是提供该库。
如果我使用qazxsw poi禁用自动依赖项解析,RPM也会失去qazxsw poi依赖项。
我应该如何配置CPack以保持外部依赖性而不是内部依赖性?
我的错。
自动依赖检测被错误的文件权限所欺骗:CPACK_RPM_PACKAGE_AUTOREQ
和libbar.so
都拥有bin/foo
权限,缺少lib/libfoo.so
。
为了解决这个问题,我刚刚将rw-rw-r--
标志添加到CMake x
指令:
install(DIRECTORY "${PROJECT_BINARY_DIR}/bin" DESTINATION "${INSTALL_DIR}" USE_SOURCE_PERMISSIONS) install(DIRECTORY "${PROJECT_BINARY_DIR}/lib" DESTINATION "${INSTALL_DIR}" USE_SOURCE_PERMISSIONS)