专栏首页bisal的个人杂货铺yum update和yum upgrade的真正区别

yum update和yum upgrade的真正区别

Linux下的yum怎么升级?》提到指令yum有两个参数,update和upgrade,区别如下,

yum -y update:升级所有包同时,也升级软件和系统内核; yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。

公众号后台有位朋友提问了,

其实上述对update和upgrade的描述,不是非常准确,update和upgrade的区别能不能再形像点?

我们知道yum是红帽的包管理器,通过他可以从仓库检索、提取、安装和卸载包,让系统管理人员交互和自动化地管理rpm软件包,还可以将整个系统更新到当前最新的版本。其实,yum最大的优势,就是当更新、安装、卸载包的时候,会自动处理包之间的依赖关系,一次安装所有以来的软件包,但是,如果使用rpm安装,则需要自行安装这个包所有的依赖包,一次次下载、安装。

通过check-update选项,可以了解系统中哪些已安装的包当前有更新,如下所示,这些包存在可用的更新,

~]# yum check-update
Loaded plugins: product-id, search-disabled-repos, subscription-manager
dracut.x86_64                         033-360.el7_2      rhel-7-server-rpms
dracut-config-rescue.x86_64           033-360.el7_2      rhel-7-server-rpms
kernel.x86_64                         3.10.0-327.el7     rhel-7-server-rpms
rpm.x86_64                            4.11.3-17.el7      rhel-7-server-rpms
rpm-libs.x86_64                       4.11.3-17.el7      rhel-7-server-rpms
rpm-python.x86_64                     4.11.3-17.el7      rhel-7-server-rpms
yum.noarch                            3.4.3-132.el7      rhel-7-server-rpms

以第一行为例,

dracut.x86_64                         033-360.el7_2      rhel-7-server-rpms

dracut - 包名。

x86_64 - 包适合的CPU架构

033 - 即将安装包的版本

360.el7 - 更新包的发布版本

_2 - 构建版本

rhel-7-server-rpms - 更新包所在的仓库

再说一点yum和rpm的区别,就是无论使用yum install还是yum install都会安装新的内核。当使用rpm的时候,如果跟着-u选项会替换当前的内核,如果跟着-i才会安装一个新内核。

重点来了,update和upgrade的区别。

yum使用upgrade选项,等价于打开obsoletes配置的yum update。而默认中/etc/yum.conf配置文件obsoletes是打开的,因此这两个指令选项是等价的。

这是一个yum缓存配置文件的示例,obsoletes定义了更新时处理软件包的取代关系,简单来讲,1表示更新旧的rpm包的同时会删除旧包,0表示更新的时候不会删除旧包,

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3


[comments abridged]


# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

因此,yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版。唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留(obsoletes=0)。

生产环境中建议使用yum update,防止因为替换,导致旧的软件包依赖出现问题。

参考文章:

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-yum#s1-yum-upgrade-system

https://unix.stackexchange.com/questions/55777/in-centos-what-is-the-difference-between-yum-update-and-yum-upgrade

https://www.jianshu.com/p/1f5c2fa8a65f

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Oracle RAC安装过程中碰到的“坑”和关键点(二)

    Linux下安装Oracle,除了系统配置参数,我觉得依赖包的安装是另一个比较琐碎的操作。

    bisal
  • 安装Oracle Linux碰见的几个问题

    今儿需要部署一个Oracle环境,为了简单些,选择了Oracle提供的Linux版本介质:OracleLinux-R6-U2-Server-x86_64-dvd...

    bisal
  • 日期格式符RR和YY的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csd...

    bisal
  • CentOS 中使用yum时常见的一种提示信息

    相信你也遇到过类似的情况,当你安装centos系统的虚拟机有一段时间没有用的时候,再次使用yum去安装一些工具的时候会提示:

    阿dai学长
  • yum的简单使用

    1.yum命令简单介绍 yum(yellow dog updater modified)的理念是使用一个中心仓库(repository)管理一部分甚至一个di...

    苦咖啡
  • Linux 下载安装VSCode 使用编程输出当前时间的方法

    rpm命令使用哪个参数安装软件:-i rpm命令使用哪个参数删除软件:-e yum安装源配置文件所在目录是:/etc/yum.repo.d yum安装源配...

    砸漏
  • Linux命令行:yum详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RP...

    用户5640963
  • yum 命令讲解

    Yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于R...

    用户5807183
  • Linux yum 软件仓库

    以谁为师
  • Linux yum 命令

    yum (全称Yellow dog Update)命令是 RedHat 和 Fedora 以及 SUSE 中基于 rpm 软件包管理器。全称 Yellowdog...

    用户1679793

扫码关注云+社区

领取腾讯云代金券