yum 包管理器关于退出代码的奇怪行为:

Posted

技术标签:

【中文标题】yum 包管理器关于退出代码的奇怪行为:【英文标题】:Weird Behavior from yum package manager regarding exit codes: 【发布时间】:2016-10-12 15:55:36 【问题描述】:

我使用 yum 作为包管理器,因为我在 Centos 上。我正在使用内核头文件和开发包,并注意到一些我无法通过谷歌搜索找到信息的特殊行为:

目前我为当前内核安装了头文件和开发包,但是每当我执行 yum 命令在本地安装这些(我有 RPM)时,我会得到不同的行为:

(注意:我正在致力于自动化安装,所以我知道在我当前的环境中这样做是没有价值的。我只是在寻找对这种不一致的一些理解)

[root@host mydir]# rpm -qa | grep kernel
kernel-headers-2.6.32-573.7.1.el6.x86_64
kernel-2.6.32-504.el6.x86_64
kernel-2.6.32-573.7.1.el6.x86_64
kernel-devel-2.6.32-573.7.1.el6.x86_64
libreport-plugin-kerneloops-2.0.9-25.el6.centos.x86_64
kernel-2.6.32-573.3.1.el6.x86_64
kernel-firmware-2.6.32-573.22.1.el6.noarch
abrt-addon-kerneloops-2.0.8-34.el6.centos.x86_64
dracut-kernel-004-388.el6.noarch

安装了有问题的两个包(kernel-2.6.32-573.7.1.el6.x86_64 的开发和标头

[root@host mydir]# ver=`uname -r`

尝试安装标头:

[root@host mydir]# yum install kernel-header-$ver
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Nopackage kernel-header-2.6.32-573.7.1.el6.x86_64 available.
Error: Nothing to do

[root@host mydir]# echo $?
1

退出时出现错误,但是当我对开发包尝试相同的操作时...

[root@host mydir]# yum install kernel-devel-$ver
Loaded plugins: fastestmirror, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Nothing to do

[root@host mydir]# echo $?
0

【问题讨论】:

【参考方案1】:

简单:yum 没有可用的旧软件包。唯一可用的“内核头包”是最新的 CentOS 6.8 更新 = kernel-headers-2.6.32-642.1.1.el6

除此之外,内核头文件 ( /usr/include/* ) 并不一定要遵循内核版本:它们用于构建应用程序。必须匹配的两个包是 kernel、kernel-devel。

更新http://mirror.centos.org/centos/6.8/updates/

发布http://mirror.centos.org/centos/6.8/os/


【讨论】:

以上是关于yum 包管理器关于退出代码的奇怪行为:的主要内容,如果未能解决你的问题,请参考以下文章

rpm,yum程序包管理器

yum源包管理器配置方法的详细总结

程序包管理的前端工具yum程序包管理器编译安装sed命令

linux基本操作之yum程序包管理器

DNF 包管理器

yum-程序包管理器前端工具