首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yum +不更新已安装的软件包

yum +不更新已安装的软件包
EN

Unix & Linux用户
提问于 2020-07-12 13:42:08
回答 3查看 21.9K关注 0票数 6

我们正在尝试安装以下rpm (实际上已经安装)

代码语言:javascript
复制
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?

其他例子

代码语言:javascript
复制
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/*

但帮不上忙

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2020-07-12 14:33:54

我的印象是,你在抱怨百胜的默认行为。

yum充当安装/删除或升级包的包管理器。

如果存在Error: Nothing to do,那么安装/删除或升级包实际上是失败的,因此返回代码== 1。

如果要检查包是否已安装,如果未安装,请尝试以下操作:

rpm -qa | grep wget || yum -y install wget

这将在标准场景中为您提供$?== 0。

票数 7
EN

Unix & Linux用户

发布于 2020-07-12 14:31:30

您正在尝试安装与您在系统上已经安装的软件包的旧版本或相同版本的包。yum在运行之前会检查这一点,这就是为什么当您尝试将它与这些包一起使用时,它会给出消息。否则,yum在更新期间会做什么?如果一个更新出现并在其中一个repos中可用,它是否会将它们升级到最新版本,并且在系统上有两个完全相同的包?

如果您需要一个旧版本的软件,那么您需要从源代码编译它,而不是使用yum来安装它的rpm

票数 4
EN

Unix & Linux用户

发布于 2022-04-25 07:54:32

在安装软件包时,我遇到了类似的问题,问题是软件包的相同版本已经存在。

对我有用的解决方案:让我们说包名是: package-abc

代码语言:javascript
复制
sudo yum remove package-abc -y

sudo yum install package-abc -y

希望这对你也有帮助!干杯!

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/598095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档