【问题标题】:How do I specify the files I want CPack to pack into an RPM?如何指定我希望 CPack 打包到 RPM 中的文件?
【发布时间】:2018-06-22 16:39:51
【问题描述】:

我正在使用 CPack 的组件功能制作两个 rpm。我希望一个拥有 .so 文件,另一个拥有所有头文件。我在组件功能中找不到任何关于打包文件的类似问题。

(DEVEL" 是我的 devel rpm 的组件)

现在我有set(CPACK_RPM_DEVEL_INSTALL_FILES path/../file1

...

path/../file2) 只是我的所有文件都由返回分隔,但这根本不起作用。在 rpm 中提供我需要的文件列表的正确语句是什么?

目前它产生 3 个 rpm(我假设第三个将是一个完整的,其中包含我可以生成但不使用的所有文件)。其中两个 rpm 包含 repo 中的每个文件,第三个只有两个 CMake 文件。

cpack_add_component(DEVEL)
//Skipping version, description, name, setting source_dir... set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
set(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "devel")
set(CPACK_RPM_DEVEL_INSTALL_FILES "/usr/include/opentracing/noop.h
...
/usr/include/opentracing/version.h")
set(CPACK_COMPONENT_DIST_REQUIRED TRUE)
set(CPACK_COMPONENT_DEVEL_REQUIRED TRUE)
set(CPACK_COMPONENTS_ALL DIST DEVEL)

我在 linux 命令行中使用 cpack -G rpm 调用它

【问题讨论】:

  • 嗯,将CPACK_RPM_COMPONENT_INSTALL 变量设置为ON 怎么样,CPack 将为每个组件创建 RPM 包?
  • 我已经打开了它,它会创建 3 个 rpm。其中 2 个 rpm 中包含每个文件,而第三个(开发)rpm 中只有两个 cmake 文件,这些文件并不打算包含在其中。
  • 嗯,这样的 rpm 可能是个问题。您能否提供您的CMakeLists.txt(以minimal reproducible example 的形式)重现此类行为?
  • cpack_add_component(DEVEL) //assigned directories, version... set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_COMPONENTS_IGNORE_GROUPS 1) set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) set(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "devel") set(CPACK_RPM_DEVEL_PACKAGE_NAME "opentracing-cpp-devel${OPENTRACING_VERSION_STRING}") set(CPACK_RPM_DEVEL_INSTALL_FILES "/usr/include/opentracing/noop.h ... /usr/include/opentracing/variant/recursive_wrapper.hpp") set(CPACK_COMPONENT_DIST_REQUIRED TRUE) set(CPACK_COMPONENT_DEVEL_REQUIRED TRUE) set(CPACK_COMPONENTS_ALL DIST DEVEL)
  • 抱歉,我无法弄清楚格式。我无法弄清楚并且找不到任何文档的主要事情是 CPACK_RPM_DEVEL_INSTALL_FILES 调用或一些类似于可以修改添加到 rpm 的文件的函数

标签: cmake rpm cpack


【解决方案1】:

在您的 CMakelists.txt 中,添加如下内容:

install(TARGETS outputfiles... RUNTIME DESTINATION bin LIBRARY DESTINATION lib)

然后就可以使用了

make package

在您的构建目录中。

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2017-12-10
    • 1970-01-01
    相关资源
    最近更新 更多