RPM 有条件 可能需要在规格文件中

2023-11-21

正如主题所读,我想知道是否可以在 RPM 规范文件中使所需的包依赖于某个条件?

例如,如果在安装目标上,则检查 shell 语句,例如主机正在使用绑定接口 并且仅当要求生效时。


作为您最初问题的答案 - 是的,这是可能的,但是您可以实现的内容取决于您想要用作条件的内容,并且这些条件是在包的构建期间而不是在安装期间写入包中的。您可以轻松地在 .spec 中执行某些操作,例如

%if some_condition_is_true
Requires: foo
%else
Requires: bar
%endif

问题是,这有多大意义?您的特定用例是什么?

对于您所描述的情况,这是不可能的,因为您无法在安装期间更改软件包。对于您的场景,您有几种选择:

  • 创建包的两个版本,一种用于绑定,一种用于没有主机的主机
  • 将绑定主机所需的部分分开 子包,并且仅将其安装在需要它的主机上
  • 将绑定主机的逻辑放在%pre/%post脚本,以便它仅有条件地运行。
  • 使用一些虚拟需求,这些需求由多个包满足,然后在主机上添加一些配置,优先考虑您需要的包,即绑定或不绑定的包。但这是高度特定于发行版的......

有关自 rpm.org v4.12 以来大部分可用的条件/动态宏的更多详细信息,请参阅https://web.archive.org/web/20160513021804/http://rpm.org/wiki/DynamicDependencies

有关的更多详细信息%pre/%post和其他脚本参见例如https://fedoraproject.org/wiki/Packaging:ScriptletSnippets

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

RPM 有条件 可能需要在规格文件中 的相关文章

  • Linq 表达式中的条件运算符导致 NHibernate 异常

    我正在尝试在 ASP NET MVC 2 应用程序中实现搜索功能 我根据用户输入的条件创建一个表达式 public ViewResult FindCustomer string forename string familyname Date
  • 奇怪的for循环问题

    我不确定这是否是一个错误 所以我想也许你们可能想看一下 问题出在这段代码上 for i 0 1 05 do print i end 输出应该是 0 05 1 snip 95 1 相反 输出是 0 05 1 snip 95 while 循环也
  • Laravel 5.5 具有不同列名的单独表的唯一验证规则

    所以我有用户和公司 一名用户属于一家公司 我想验证用户注册 以便business name他们用来注册的字段在companies表 目标是不允许用户创建重复的公司 这是我的注册功能 public function register Requ
  • 更改活动输入选择器的背景颜色

    任何原因为什么当我运行这段代码时 input type submit active background color green 当我单击所需的按钮时 它只会闪烁绿色一瞬间 然后返回到原始颜色 怎样才能让它永远保持绿色呢 input typ

随机推荐

  • 非常量引用绑定到临时的 Visual Studio bug?

    我在编译一些可移植代码时遇到了这个问题gcc 基本上这个奇怪的代码在 Visual Studio 中编译 这真的让我大吃一惊 class Zebra int x Zebra goo Zebra z return z void foo Zeb
  • Min-width, max-width css 使用最小宽度

    好吧 所以我希望做的是创建一个 DIV 它将根据其中的内容自动调整大小 但它应该使用尽可能小的宽度 我不知道如何做到这一点 所以 如果我有一个包含 3 个字符的 DIV 标签 其宽度无疑低于 200px 那么我想要的就是 div 为 200
  • pthread_mutex_lock.c:62: __pthread_mutex_lock: 断言 `mutex->__data.__owner == 0' 失败

    我收到了那个错误 pthread mutex lock c 62 pthread mutex lock 断言 mutex gt data owner 0 失败 我找不到任何原因 但是我不确定以下代码 声明 std mutex lock st
  • 如何使用 jquery 隐藏父元素?

    假设以下 HTML li class fooli a class foo href anchor a li li class fooli a class foo href anchor a li 和以下 Javascript 使用 jque
  • ASP.NET 的 JSON 最大长度问题

    我正在创建一个 asp net 2 0 Web 服务 它提供 json 作为输出 并且有一个非常大的 无法分解的数据集 超出了最大长度限制 我在互联网上搜索过 net 3 5 4 上有解决方案 但 2 0 上没有 谁能告诉我如何增加 JSO
  • Android Gradle Jacoco:用于集成测试的离线工具

    我们正在构建一个 Android 应用程序 并使用 Appium 进行测试 现在我想看看我们的 Appium 测试的测试覆盖率 我认为这是可能的 因为Jacoco支持离线检测 http www eclemma org jacoco trun
  • 如何在 Visual Studio Code 中以 noprofile 启动 Powershell 脚本

    如何在 Visual Studio Code 中以 noprofile 启动 Powershell 脚本 我可以使用 noprofile with 命令运行 Powershell IsePowerShell Ise NoProfile 但是
  • 厨师包装食谱最佳实践

    在学习厨师的过程中 我看到了包装食谱的相互冲突的模式 例如 一些食谱使用default rb 而另一些则使用customize rb进行覆盖 attributes default rb attributes customize rb 哪个是
  • (仍然)无法正确安装 python 的 lxml 2.3,但至少 2.2.8 可以工作

    2011年6月30日 我因为这个问题而奖励 Pablo 因为他answer 由于他的评论中讨论的原因 我仍然无法正确安装 lxml 2 3 我收集了一些可以做的工作 但我已经在这个问题上花费了大量的时间 不过 我已经编写了所需的代码并成功安
  • selenium webdriver 找到锚标记并单击它

    div ul class selectors modeSelectors li a href content l411846326l1213g references title span class selector References
  • 使用 lambda 作为参数:std::function 还是模板?

    我正在学习 c 11 对 lambda 特别感兴趣 经过一些实践 我假设 lambda 闭包是一个无名函数对象 所以我写了这段代码 template
  • 基于“Accept”标头的网页有条件服务?

    据我所知 您可以通过以下方式通过 Express 提供静态内容 app use express static dirname public html 但是 我试图根据响应发送的 Accept 标头来明确更改其提供的内容的呈现方式 通常 我拥
  • 使用 Rails 运行多个后台并行作业

    在我的 Ruby on Rails 应用程序中 我需要并行执行 50 个后台作业 每个作业都会创建到不同服务器的 TCP 连接 获取一些数据并更新活动记录对象 我知道执行此任务的不同解决方案 但其中任何一个都是并行的 例如 delayed
  • UTF-8 字符的 Html2canvas 图像捕获问题

    我想捕获我的网页 为此我找到了 html2canvas 当我如下所示使用时 我的 UTF 8 波斯语 字符遇到麻烦 并且这个方向被破坏 如您所见 HTML div span span div JavaScript document read
  • 如何让 kestrel Web 服务器监听非本地主机请求?

    我已将我的 c asp net 5 mvc 6 应用程序部署到 Windows 2008 服务器 我已经火力全开dnx web它正在侦听端口 5000 并且从本地计算机访问时工作正常 如何让它监听非本地主机请求 附 这question与此不
  • 如何实现一个工厂有多个交换机?

    我想实现一个工厂函数来创建对象 我的对象模板如下所示 template
  • 如何在 C 中实现循环缓冲区?

    我需要一个固定大小 在创建时可以在运行时选择 而不是编译时选择 的循环缓冲区 它可以容纳任何类型的对象 并且需要very高性能 我认为不会出现资源争用问题 因为尽管它处于多任务嵌入式环境中 但它是一个合作环境 因此任务本身可以管理它 我最初
  • XSLT:循环一次选择两个元素

    我有一堆 xml 文档 作者选择在其中表示一组笛卡尔点 如下所示
  • 如何读取正在使用的文件? [复制]

    这个问题在这里已经有答案了 我有一个小问题 我有一个应该每天解析日志文件的工具 不幸的是这个日志文件正在被写入日志的进程使用 我无法阻止它 第一次尝试是创建该文件的副本 但这也不起作用 有什么方法可以让我读取日志文件的当前文本 即使它已经在
  • RPM 有条件 可能需要在规格文件中

    正如主题所读 我想知道是否可以在 RPM 规范文件中使所需的包依赖于某个条件 例如 如果在安装目标上 则检查 shell 语句 例如主机正在使用绑定接口 并且仅当要求生效时 作为您最初问题的答案 是的 这是可能的 但是您可以实现的内容取决于