如何通过 rpm 复制 yum 命令?

How to replicate yum command via rpm?

我想通过 'rpm' 命令安装一些 RPM,类似于 'yum install' 完成任务的方式。

我已经通过命令下载了 RPM 和所有必需的依赖项

yum install --downloadonly --downloaddir=. <package>

但是当我发出命令时

rpm -ivh *.rpm

RPM 无法安装引用失败的依赖项,例如:

[18:45:05][root][~/test]$ rpm -ivh *
warning: authconfig-6.1.12-13.22.amzn1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 21c0f39f: NOKEY
error: Failed dependencies:
        dbus-python <= 0.83.0-6.1.11.amzn1 is obsoleted by dbus-python26-0.83.0-6.1.13.amzn1.x86_64
        yum-updatesd <= 1:0.9-13.14.amzn1 conflicts with dbus-python27-0.83.0-6.1.13.amzn1.x86_64
        dbus-python <= 0.83.0-6.1.11.amzn1 conflicts with dbus-python27-0.83.0-6.1.13.amzn1.x86_64
        yum-updatesd <= 1:0.9-13.14.amzn1 conflicts with gamin-python-0.1.10-16.14.amzn1.x86_64
        newt-python <= 0.52.11-3.7.amzn1 is obsoleted by newt-python26-0.52.11-3.11.amzn1.x86_64
        yum-updatesd <= 1:0.9-13.14.amzn1 conflicts with pygobject2-2.20.0-5.14.amzn1.x86_64
        authconfig <= 6.1.12-13.17.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        gamin-python <= 0.1.10-9.8.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        mcstrans <= 0.3.1-4.7.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        python-urlgrabber <= 3.9.1-9.10.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        yum <= 3.4.3-137.51.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        yum-updatesd <= 1:0.9-13.14.amzn1 conflicts with python26-2.6.9-1.80.amzn1.x86_64
        python = 1:2.6-2.26.amzn1 is obsoleted by python26-2.6.9-1.80.amzn1.x86_64
        python-iniparse <= 0.3.1-2.1.7.amzn1 is obsoleted by python26-iniparse-0.3.1-2.1.9.amzn1.noarch
        python-pycurl <= 7.19.0-17.9.amzn1 is obsoleted by python26-pycurl-7.19.0-17.12.amzn1.x86_64
        pygpgme <= 0.1-18.20090824bzr68.8.amzn1 is obsoleted by python26-pygpgme-0.3-9.12.amzn1.x86_64
        pyliblzma <= 0.5.3-11.4.amzn1 is obsoleted by python26-pyliblzma-0.5.3-11.6.amzn1.x86_64
        pyxattr <= 0.5.0-1.4.amzn1 is obsoleted by python26-pyxattr-0.5.0-1.6.amzn1.x86_64
        python-urlgrabber <= 3.9.1-9.10.amzn1 is obsoleted by python26-urlgrabber-3.9.1-9.13.amzn1.noarch
        python = 1:2.6-2.26.amzn1 conflicts with python27-2.7.9-4.115.amzn1.x86_64
        python-urlgrabber <= 3.9.1-9.10.amzn1 conflicts with python27-urlgrabber-3.9.1-9.13.amzn1.noarch
        rpm-python <= 4.11.2-2.60.amzn1 is obsoleted by rpm-python26-4.11.2-2.64.amzn1.x86_64
        yum-updatesd <= 1:0.9-13.14.amzn1 conflicts with yum-3.4.3-137.57.amzn1.noarch
        yum-plugin-priorities <= 1.1.31-18.17.amzn1 conflicts with yum-3.4.3-137.57.amzn1.noarch
        yum-plugin-upgrade-helper <= 1.1.31-18.17.amzn1 conflicts with yum-3.4.3-137.57.amzn1.noarch
        yum <= 3.4.3-137.51.amzn1 conflicts with yum-metadata-parser-1.1.4-8.12.amzn1.x86_64
        rpm-python <= 4.11.2-2.63.amzn1 is obsoleted by yum-python26-3.4.3-137.57.amzn1.noarch

尝试 --aid 切换

rpm -ivh --aid

注意:确保你有rpmdb-redhat包安装。

您应该使用 -U 标志 (upgrade) 而不是 -i (install):

rpm -Uvh *.rpm

原因是您下载的软件包中有一些已经在本地安装,尽管是旧版本。使用 -i 时,这些包不会升级,因此有关未满足的依赖项的依赖项冲突。