如何使 cpack 不向 RPM 添加所需的库?

2024-01-10

我正在尝试将工作中的构建系统转换为 cmake,但它生成的 RPM(通过 cpack)遇到了一个有趣的问题:它会自动将它认为您的 RPM 具有的所有依赖项添加到其所需的列表中图书馆。

总的来说,这很好,但对我来说,这是灾难性的。不幸的是,我们构建的开发包最终使用我们自己开发的工具进行安装,该工具使用 rpm 将它们安装在与系统数据库不同的单独 RPM 数据库中。这很愚蠢,但我无法改变它。这意味着任何普通库所依赖的所有系统库(例如 libc 或 libpthread)都不在我们的开发包所使用的 RPM 数据库中。因此,如果我们的某个开发包的 RPM 列出了所需的系统库,那么我们就无法安装它,因为 rpm 会认为它们没有安装(因为它们列在普通数据库中,而不是列在数据库中)。在安装我们的软件包时被告知要使用它)。我们当前的构建内容可以很好地处理这个问题,因为它没有将任何系统库列为 RPM 中的依赖项,但 cpack 会自动填充 RPM 所需库的列表并将系统库放入其中。我需要一种方法来阻止它这样做。

我尝试设置CPACK_RPM_PACKAGE_REQUIRES to "",但这没有效果。 RPM cpack 生成的最终结果仍然是列出所需的系统库。此时我能想到的就是复制 RPM cpack 生成器并对其进行修改以执行我想要的操作并使用它而不是标准生成器,但我宁愿避免这种情况。有谁知道如何让 cpack 停止使用所需的库填充 RPM?


见底部

http://www.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html http://www.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html

autoreqprov 标签 — 禁用自动依赖处理

有时可能不需要 RPM 的自动依赖性处理。在这些情况下,可以使用 autoreqprov 标签来禁用它。该标签采用 yes/no 或 0/1 值。例如,要禁用自动依赖性处理,可以使用以下行:

自动请求验证: 否

EDIT:

为了在 cmake 中设置它,你需要这样做set(CPACK_RPM_PACKAGE_AUTOREQPROV " no"). The 似乎需要额外的空间在“否”前面(或后面)才能使其正常工作。看来 cpack 的 RPM 模块有一个错误,导致它不允许您将其某些变量设置为短于 3 个字符的长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 cpack 不向 RPM 添加所需的库? 的相关文章

  • Python pip install pyarrow错误,无法执行'cmake'

    我尝试在 EMR 集群的主实例上安装 pyarrow 但总是收到此错误 hadoop ip XXX XXX XXX XXX sudo usr bin pip 3 4 install pyarrow Collecting pyarrow Do
  • 在cmake中,什么是“项目”?

    这个问题是关于project命令 推而广之 是什么concept of a project意思是cmake中的 我真的不明白什么是project是 以及它与target 我想我确实理解 我看了一下cmake 文档project http w
  • cmake 包括其他目录中的 h 文件

    我在 cmake 项目下进行测试时遇到问题 我的项目是这样安排的 TerrainMap PointAccumulator heightQuadGrid Test 在 TerrainMap 目录中 CMakeLists txt 文件简单地概述
  • 针对 dll/lib 的 cmake 链接

    我的 cmake 的输出是一个静态库 我正在这样创建它 add library myMainLib STATIC BACKEND SOURCES 当我尝试让 myMainLib 链接到第三方 lib dll 时 出现了问题 dll 文件将在
  • 在 CMake 中,CHECK_INCLUDE_FILE_CXX 如何工作?

    以下代码不打印任何内容 CHECK INCLUDE FILE CXX glog logging h GLOG INCLUDE IF GLOG INCLUDE MESSAGE YY ENDIF GLOG INCLUDE 但我设置了以下环境变量
  • 使用 CMake 对 SDL 的未定义引用

    我正在使用 SDL v1 2 15 7 和 CMake 3 2 1 开发一个项目 在 h 文件中我添加了 include
  • 如何在使用 Cmake 构建期间编译 HLSL 着色器?

    我正在开发 d3d 应用程序 我想在使用 cmake 构建期间编译我的 hlsl 着色器 我不知道从哪里开始 这是我当前的 CMakeLists txt cmake minimum required VERSION 3 20 project
  • CMake“无法运行 MSBUILD.exe”命令错误

    当我想为 opencv 3 3 0 创建 Visual Studio 15 2017 make 文件时 它给了我以下错误消息 error in configuration process project files maybe invali
  • 将 dll/lib 链接到 cmake 项目

    我试图将库链接到我的 cmake 项目 但遇到链接器错误 我花了 2 个小时尝试解决这个问题 并创建了一个简单的项目 在其中对所有路径进行了硬编码 CMAKE MINIMUM REQUIRED VERSION 3 0 PROJECT Tes
  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • 如何使用cmake查找库?

    要将可执行文件与驻留在标准位置的库链接 可以在 CmakeLists txt 文件中执行以下操作 create executable generate mesh generate mesh cpp target link libraries
  • CMake:使用其他平台的生成器。如何?

    如何使用 CMake 在 Linux 上生成 Visual Studio 项目文件 你不能 您必须在 Windows 上运行 CMake 才能为 Visual Studio 生成
  • 使用 CMake 和 clang 在 Windows 上构建简单的 C++ 项目

    我正在尝试在 Windows 10 上构建一个简单的 Hello World 程序 最好使用 CMake 和 clang 如果我使用 MinGW 的 g 编译器 我可以成功编译 链接和运行同一个项目 但当我尝试使用 clang 时会遇到问题
  • CMake:从多行文本文件获取版本

    我有一个文件version txt VERSION MAJOR 1 VERSION MINOR 1 VERSION PATCH 3 我想使用 cmake 添加主要 次要和补丁的定义 我尝试过使用 file STRING version tx
  • 使用cmake交叉编译gRPC

    我正在尝试使用 cmake 交叉编译 gRPC 我实际上做到了 不幸的是 我的方法涉及在 CMakeLists txt 内部进行修改 问题是 当我尝试编译 gRPC 时 它使用的是他刚刚编译的 protobuffer 它无法在 x86 计算
  • Clion如何将文件添加到项目中

    这看起来真的很基本 如何将文件添加到项目中而无需手动编辑CMakeLists txt 例如另一个目录中的源文件 CLion 解析CMakeLists txt并使用它生成项目视图 但我相信将文件添加到项目的唯一方法是编辑CMakeLists
  • CMake 错误:“add_subdirectory 未给出二进制目录”

    我正在尝试将 Google Test 集成到更大项目的子项目中 但找不到令我满意的解决方案 我有两个限制 Google Test 的源代码已经位于项目结构中的某个位置 因此不能使用 URL 从 git 存储库下载它 Google Test
  • 如何使用cmake自动构建第三方库

    我在寻找什么 下载库 提取它 应用自定义补丁 运行配置 运行构建命令 我正在尝试构建的库是 Openssl Boost Thrift C ares Curl Pcre Nginx ICU JsonCPP 我想我可以使用外部模块做这些事情 h
  • 是否可以让 cmake 构建文件(CMakeLists.txt)不在 CLion 的根目录中

    是否可以让 cmake 构建文件 CMakeLists txt 不在 CLion 的根目录中 我目前正在开发的项目中 cmake 构建文件不在 CLion 项目的根目录中 在 out Debug 目录中 我希望 CLion 打开该项目的根目
  • bdist_rpm 从 Ubuntu 到 CentOs

    我们在 Ubuntu Mac 上进行开发 并将 RPM 部署到 CentOS 这是设置 不能更改太多 问题是 当从 rpm 安装时 软件包会转到 usr local lib python2 7 dist packages 这是 Ubuntu

随机推荐

  • 调用 php 中定义为对象变量的匿名函数[重复]

    这个问题在这里已经有答案了 我有如下 php 代码 class Foo public anonFunction public function construct this gt anonFunction function echo cal
  • Nodejs Scraper 不会移至下一页

    大家好 这是我其他问题的后续问题 我创建了一个 Nodejs Scraper 它似乎不想浏览页面 它停留在第一个页面 我的源代码如下 const rp require request promise const request requir
  • 如何验证 Blob 是否存在于已删除列表中

    以下代码将能够查看 blob 是否存在 var blob client GetContainerReference containerName GetBlockBlobReference blobFileName if blob Exist
  • 创建可变参数模板函数来测量和执行其他函数

    我目前正在尝试实现一个函数 该函数将任何其他函数和该函数的一组有 效输入值作为输入 并返回该函数的结果以及打印执行该函数所需的时间 这是我到目前为止所拥有的 template
  • Python 自定义日期时间(?) 格式处理

    假设我有一个代表时间和一周中的天数的字符串 例如 52300 表示一周的第 5 天 星期五 23 小时 00 分钟 我如何将其解析为时间或日期时间对象以添加 timedelta hours 3 并将其恢复为这种奇怪的格式 预期输出为 602
  • C语言使用Unix概念的目录监控代码

    在服务器上 进程监视 Unix 文件系统中的文件 如果客户端发送要监视的文件名 则服务器必须向客户端发送该文件是否被更改或删除的报告 对于服务器 客户端通信 我们应该使用消息队列或套接字 对于文件中的每个更改 服务器都必须通知该更改 对于所
  • 在 MacOS 上将 OpenSSL 更新到 1.1.1

    新的 LTS1 1 1 https www openssl org blog blog 2018 09 11 release111 的版本OpenSSL https github com openssl openssl is out 我如何
  • mongodb db.collection.find({}) 不执行任何超过 .limit(101) 的操作

    node mongodb 版本 2 0 43 和 MongoDB shell 版本 3 2 5 Centos虚拟机 我有一个 无上限 1600 个文档的集合 不是很大 并且所有文档都有标准的 BSON ids if I do db coll
  • sonar.analysis.mode 参数的替代方案

    我正在使用 Sonarqube 7 9 和 Gitlab 以及 Maven docker 映像 该映像使用以下命令调用我的 Sonarqubemvn batch mode verify sonar sonar DskipTests true
  • JavaFX 屏幕分辨率缩放

    我一直在寻找一种方法来做到这一点 但我只找到了这个问题没有答案 https stackoverflow com questions 32453173 javafx scale elements to screen resolution 我正
  • 在内联 GNU 汇编器中获取字符串长度

    我正在重新学习我在非常旧的 MS DOS 机器上使用的汇编程序 这是我对该函数应该是什么样子的理解 它编译但崩溃了SIGSEGV当试图把0xffffffff in ecx 该代码在具有 32 位 Debian 9 的 VM 中运行 如有任何
  • Matlab:二维数组,行不同长度

    在Matlab中 我想创建一个二维数组 但是 我无法创建矩阵 因为行的长度都不同 我是 Matlab 新手 我通常会在 C 中通过创建一个指针数组来完成此操作 每个指针都指向其自己的数组 我应该如何在Matlab中做到这一点 谢谢 您可以使
  • 上传和图像压缩

    我在客户的一个网站上使用 Uploadify 允许他们一次将大量图片上传到他们的照片库 我最近发现了一些问题 他们似乎上传大照片 3 MB 及以上 我想知道 是否可以在客户端压缩 减小它们的大小 而不是在服务器上进行压缩 就像 facebo
  • 从 Excel VBA 访问 Lotus Notes 数据库 - 如何选择 COLUMNVALUES?

    我正在研究将 Notes 数据库中的数据直接提取到 Excel 中 因为我们的财务人员正在手动重新输入数字 到目前为止 这是我的代码 子注释BB Const DATABASE 1247 Dim r As Integer Dim i As I
  • 如何从 Android 模拟器对 kik 的服务器 API 进行逆向工程?

    我有一个群聊基克信使 http kik com 会员数量已超过50人 我需要自动化一些事情 例如基于参与度的声誉点 以及踢掉 XXX 天没有发布任何内容的不活跃会员 我看过API参考 https dev kik com docs messa
  • 为什么 Google Chrome 模拟器以 375x667 分辨率显示 iPhone 6?

    我正在尝试以编程方式调整我的网站的图像大小以适应不同大小的设备 但现在我很难判断我真正需要的尺寸 在 Google Chrome 模拟器中 我看到一些图像放大了 例如在 iPhone 6 上从 230x230 自然显示到 357x357 该
  • 在每个像素的基础上快速比较两个位图对象

    我目前正在实现一种接受两个位图对象的方法 我们可以假设所述对象具有相同的尺寸等 该方法的返回是像素变化的列表 这存储在自制对象中 这是以迭代方式开发的 因此当前的实现是一个基本的实现 只需处理每个像素并将其与对应的像素进行比较 这种生成更改
  • Makefile 和“重定位具有无效的符号索引”错误

    我正在尝试编写我的第一个 makefile 在我的项目中 我有这些文件 main c list c list h Makefile 其中甚至没有函数定义或声明 只是简单的include list h 并 clean main 来测试编译过程
  • 鼠标悬停时播放 vimeo 视频

    我在一个页面中有四个 vimeo iframe 我想在鼠标悬停时播放视频并在鼠标移开时暂停视频 以下代码有效 但仅适用于最后一个视频 我该如何修改它才能适用于所有视频 wrapper width 85 margin left auto ma
  • 如何使 cpack 不向 RPM 添加所需的库?

    我正在尝试将工作中的构建系统转换为 cmake 但它生成的 RPM 通过 cpack 遇到了一个有趣的问题 它会自动将它认为您的 RPM 具有的所有依赖项添加到其所需的列表中图书馆 总的来说 这很好 但对我来说 这是灾难性的 不幸的是 我们