CPack RPM将库放在“提供”和“要求”列表中

问题描述 投票:0回答:1

我的产品foo由一个库组成:libfoo.so和一个可执行文件:foo,它取决于libfoo.so和第三方libbar.so

我使用CPack来获得包含lib/libfoo.sobin/foo的foo的RPM。

但最终我无法安装包:rpm -ivh抱怨所需的依赖:libfoo.so

我知道自动依赖解析发现foo需要libfoo.so,但安装包的目的是提供该库。

如果我使用qazxsw poi禁用自动依赖项解析,RPM也会失去qazxsw poi依赖项。

我应该如何配置CPack以保持外部依赖性而不是内部依赖性?

dependencies rpm cpack
1个回答
1
投票

我的错。

自动依赖检测被错误的文件权限所欺骗:CPACK_RPM_PACKAGE_AUTOREQlibbar.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)
© www.soinside.com 2019 - 2024. All rights reserved.