我们正在尝试安装以下 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
Run Code Online (Sandbox Code Playgroud)
但它返回了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
Run Code Online (Sandbox Code Playgroud)
注意-我们也尝试yum clean all
,
并删除了/var/cache/yum/*
但没有帮助
我的印象是您在抱怨 yum 的默认行为。
yum 充当安装/删除或升级软件包的软件包管理器。
如果存在,Error: Nothing to do
则安装/删除或升级包的任务实际上失败 - 因此返回代码 == 1。
如果您想检查该软件包是否已安装,如果未安装,请尝试以下操作:
rpm -qa | grep wget || yum -y install wget
这应该给你$?== 0 在标准场景中。
归档时间: |
|
查看次数: |
27271 次 |
最近记录: |