有没有办法通过保留最新版本来忽略 rpm 版本冲突?
例如。我想在 AIX 中安装 gawk。我在一个文件夹中有所有必需的 rpm
bash-4.2-11.aix5.1.ppc.rpm
gawk-4.0.2-1.aix5.1.ppc.rpm
gettext-0.10.40-8.aix5.2.ppc.rpm
info-4.13a-2.aix5.1.ppc.rpm
libsigsegv-2.10-1.aix5.2.ppc.rpm
readline-6.2-4.aix5.1.ppc.rpm
我尝试使用 rpm 来安装它们,rpm -ivh *.rpm
以便 rpm 可以自动处理安装顺序。
但我明白:
package bash-4.2-11 is already installed
package gettext-0.17-7 (which is newer than gettext-0.10.40-8) is already installed
package info-5.0-1 (which is newer than info-4.13a-2) is already installed
package readline-6.2-4 is already installed
file /opt/freeware/bin/msgcomm from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/msgfmt from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/msgmerge from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/msgunfmt from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/ngettext from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/xgettext from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/lib/libintl.a from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/gettext from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/bin/msgcmp from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/share/locale/locale.alias from install of gettext-0.10.40-8 conflicts with file from package gettext-0.17-7
file /opt/freeware/info/info-stnd.info.gz from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /opt/freeware/info/info.info.gz from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /etc/X11/applnk/Utilities/info.desktop from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /opt/freeware/man/man1/info.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /opt/freeware/man/man1/infokey.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /opt/freeware/man/man1/install-info.1 from install of info-4.13a-2 conflicts with file from package info-5.0-1
file /opt/freeware/man/man5/info.5 from install of info-4.13a-2 conflicts with file from package info-5.0-
那么,有没有办法什么都不做就能忽略 gettext 和 info 冲突?我不想使用强制措施并用旧版本替换它们。
我知道如果我尝试逐个手动安装 rpms 而不安装 gettext 和 info rpms,gawk 的安装将会成功。
我想找到一个不需要我按照正确的顺序手动安装 rpm 的解决方案。
编辑:
我确实有-Uvh
这样的问题rpm -Uvh *.rpm
:它不是通过解决新 rpm 二进制文件与已安装或文件夹中的二进制文件的依赖关系来安装新的 rpm 二进制文件,而是只输出:
package gettext-0.17-7 (which is newer than gettext-0.10.40-8) is already installed
package info-5.0-1 (which is newer than info-4.13a-2) is already installed
package readline-6.2-4 is already installed
并且它停止了,没有继续安装其他需要安装的 rpm。我认为这不是正常现象,我不知道这是否与 rpm 中的问题有关(我使用的是旧版本 - 版本 3)。
答案1
所以,
我在这里发布我的部分答案,因为我认为我的主要问题可能有点误导。
这rpm -Uvh *.rpm
是可行的方法。它会使用文件夹中软件包的新版本来更新已安装的软件包,还会安装系统中尚未安装的新 rpm。
但!当您尝试使用以下命令安装 rpm 时,rpm -Uvh *.rpm
如果文件夹中的软件包与已安装的软件包的版本相同或更旧,则不会继续执行。该命令仅输出已安装的软件包,然后停止,而不会继续安装其他 rpm。
我认为这是我使用的旧 rpm(版本 3)的一个错误行为。我不知道这是否被视为正常现象,也不知道最新版本的 rpm 中是否也会出现这种情况。也许您可以提供更多信息。
答案2
由于您正在更新现有软件包,而不是专门安装软件包,因此您需要使用 update 选项-U
而不是 install 选项-i
。这将允许您同时安装和更新软件包。
rpm -Uvh *.rpm
答案3
你没有指定,但看起来你正在使用Michael Perzl 的 RPM。
如果是这种情况,请按照常问问题到:
- 下载所有依赖项
- 使用
gettext-0.17
时避免已知错误gettext-0.10
- 使用最新版本更安全,因此在使用时将现有软件包替换为新软件包
rpm -Uvh
。