【问题标题】:RPM packaging - requires not working as expectedRPM 包装 - 需要不按预期工作
【发布时间】:2016-04-09 06:07:38
【问题描述】:

我正在构建一个 rpm,我有一些要求,其中一些并没有真正起作用: 这是我在规范文件中写的内容:

Requires    : java-1.8.0-openjdk = 1.8.0.65-3.b17.el7
Requires    : apache-tomcat = 8.0.24-8.el7
Requires    : postgresql-server = 9.2.14-1.el7_1
Requires    : PyGreSQL = 4.0-9.el7
Requires    : systemd-units
Requires    : logrotate = 3.8.6-6.el7
Requires    : influxdb = 0.9.4.2-6
Requires    : kafka = 0.8.2.0-6.el7
Requires    : curl = curl-7.29.0-25.el7
Requires    : python-iptools = 0.6.1-1.el7
Requires    : shadow-utils = 4.1.5.1-18.el7

当我尝试使用以下命令安装 rpm 时:

yum --nogpgcheck localinstall $myrpm

我收到以下错误:

Error: Package: $myrpm (/$myrpm)
           Requires: curl = curl-7.29.0-25.el7
           Installed: curl-7.29.0-25.el7.x86_64 (@anaconda/7.1)
               curl = 7.29.0-25.el7
           Available: curl-7.29.0-19.el7.x86_64 (rhel-7-1-base)
               curl = 7.29.0-19.el7
Error: Package: $myrpm (/$myrpm)
           Requires: java-1.8.0-openjdk = 1.8.0.65-3.b17.el7
           Available: 1:java-1.8.0-openjdk-1.8.0.31-1.b13.el7.centos.x86_64 (pd-3rdparty)
               java-1.8.0-openjdk = 1:1.8.0.31-1.b13.el7.centos
           Available: 1:java-1.8.0-openjdk-1.8.0.31-2.b13.el7.x86_64 (rhel-7-1-base)
               java-1.8.0-openjdk = 1:1.8.0.31-2.b13.el7
           Available: 1:java-1.8.0-openjdk-1.8.0.45-30.b13.el7_1.x86_64 (pd-3rdparty)
               java-1.8.0-openjdk = 1:1.8.0.45-30.b13.el7_1
           Available: 1:java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64 (rhel-7-server-rpms)
               java-1.8.0-openjdk = 1:1.8.0.65-3.b17.el7
Error: Package: $myrpm (/$myrpm)
           Requires: shadow-utils = 4.1.5.1-18.el7
           Installed: 2:shadow-utils-4.1.5.1-18.el7.x86_64 (@anaconda/7.1)
               shadow-utils = 2:4.1.5.1-18.el7

来自rpm -qpR $myrpm的输出

/bin/bash
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/bin/sh
/usr/bin/env
/usr/bin/python
PyGreSQL = 4.0-9.el7
apache-tomcat = 8.0.24-8.el7
config(pd-sys-mgmt) = 1.0.837-cobradrop1.801b7ff8+
curl = curl-7.29.0-25.el7
influxdb = 0.9.4.2-6
java-1.8.0-openjdk = 1.8.0.65-3.b17.el7
kafka = 0.8.2.0-6.el7
logrotate = 3.8.6-6.el7
osgi(org.eclipse.persistence.core)
postgresql-server = 9.2.14-1.el7_1
python-iptools = 0.6.1-1.el7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
shadow-utils = 4.1.5.1-18.el7
systemd-units
rpmlib(PayloadIsXz) <= 5.2-1 

【问题讨论】:

    标签: rpm packaging rpmbuild rpm-spec


    【解决方案1】:

    我相信您的 curl = curl-7.29.0-25.el7 条目不应在右侧包含 curl。它不是版本字符串的一部分。

    您的java-1.8.0-openjdk 要求似乎缺少前导纪元值1(请参阅yum 输出中的1:1.8.0.65-3.b17.el7)。 (虽然如果你真的需要包含它,我有点惊讶。)

    同样,shawdow-utils 似乎缺少领先的 2 纪元(请参阅 yum 输出中的 2:4.1.5.1-18.el7)。

    所有这些都说难以置信在您的要求中具体可能是一个坏主意。这意味着您将无法在安装包时更新任何这些包(无需重新构建它),即使您打包的任何内容都可以正常使用更新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      相关资源
      最近更新 更多