我们正在尝试安装以下rpm (实际上已经安装)
rpm -qa | grep sshpass
sshpass-1.06-2.el7.x86_64
yum install sshpass-1.06-1.el7.x86_64.rpm
Loaded plugins: langpacks
Examining sshpass-1.06-1.el7.x86_64.rpm: sshpass-1.06-1.el7.x86_64
sshpass-1.06-1.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1但是它返回的exit code 1
为什么yum不忽略已经安装并返回错误的rpm?
其他例子
rpm -qa | grep figlet
figlet-2.2.5-9.el7.x86_64
yum install figlet-2.2.5-9.el7.x86_64.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
configuration
Examining figlet-2.2.5-9.el7.x86_64.rpm: figlet-2.2.5-9.el7.x86_64
figlet-2.2.5-9.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1注意-我们也尝试了yum clean all,
并删除了/var/cache/yum/*
但帮不上忙
发布于 2020-07-12 14:33:54
我的印象是,你在抱怨百胜的默认行为。
yum充当安装/删除或升级包的包管理器。
如果存在Error: Nothing to do,那么安装/删除或升级包实际上是失败的,因此返回代码== 1。
如果要检查包是否已安装,如果未安装,请尝试以下操作:
rpm -qa | grep wget || yum -y install wget
这将在标准场景中为您提供$?== 0。
发布于 2020-07-12 14:31:30
您正在尝试安装与您在系统上已经安装的软件包的旧版本或相同版本的包。yum在运行之前会检查这一点,这就是为什么当您尝试将它与这些包一起使用时,它会给出消息。否则,yum在更新期间会做什么?如果一个更新出现并在其中一个repos中可用,它是否会将它们升级到最新版本,并且在系统上有两个完全相同的包?
如果您需要一个旧版本的软件,那么您需要从源代码编译它,而不是使用yum来安装它的rpm。
发布于 2022-04-25 07:54:32
在安装软件包时,我遇到了类似的问题,问题是软件包的相同版本已经存在。
对我有用的解决方案:让我们说包名是: package-abc
sudo yum remove package-abc -y
sudo yum install package-abc -y希望这对你也有帮助!干杯!
https://unix.stackexchange.com/questions/598095
复制相似问题