首页 > 系统相关 >yum update和yum upgrade的真正区别

yum update和yum upgrade的真正区别

时间:2023-06-19 12:37:50浏览次数:45  
标签:upgrade update server yum rhel el7


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

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

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

yum update和yum 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

标签:upgrade,update,server,yum,rhel,el7
From: https://blog.51cto.com/u_13950417/6512360

相关文章

  • 私有YUM源
    一:应用场景:公司内部无法上外网或无法连网场景二:案例: 1:局域网基于BASE私有YUM源; 2:基于阿里云EXTRAS私有YUM源; 3:基于阿里云EPEL私有YUM源;三:实现 1:服务端配置 2:客户端配置......
  • Linux下的yum怎么升级?
    Linux下我们安装软件,可能会需要安装各种包来支持,你可以从安装介质中找到rpm,手动安装,但最常用的,可能还是yum,省了很多烦恼。但要知道yum同样需要升级,yum怎么升级?碰巧看到杨大师的一篇文章《LINUX环境下如何重建yum源并更新》,介绍了整个操作。1. 备份默认的yum#mv/etc/yum.repos.d......
  • kali 中 apt update失败
    E:无法下载http://http.kali.org/kali/dists/kali-rolling/main/Contents-amd64 文件尺寸不符(44469840!=44924432)。您使用的镜像正在同步中?[IP:192.168.111.2438081]E:部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。 sudovim/etc/apt/sources.li......
  • 07. centos使用yum方式安装redis
    一、在CentOS和RedHat系统中,首先添加EPEL仓库,然后更新yum源:sudoyuminstallepel-releasesudoyumupdate(可不更新)二、然后安装Redis数据库:sudoyum-yinstallredis安装好后启动Redis服务即可:sudosystemctlstartredis这里同样可以使用redis-cli进入Redis命令行......
  • Centos7 yum部署单机kubernetes集群
    kubernetes有多种部署方式,目前主流的方式有kubeadm、minikube、二进制包minikube:一个用于快速搭建单节点kubernetes的工具kubeadm:一个用于快速搭建kubernetes集群的工具二进制包:从官网下载每个组件的二进制包,依次去安装,此方式对于理解kubernetes组件更加有效一、Minikube1......
  • updateTimelineShareData,onMenuShareTimeline不显示分享图片和标题,不要从网址直接打开
    updateTimelineShareData,onMenuShareTimeline不显示分享图片和标题,不要从网址直接打开,要从公众号菜单里进去再分享。原文地址:http://www.xiaoyebailong.com/index.php/2022/01/04/68981.htm这个是官方分享接口地址https://developers.weixin.qq.com/doc/offiaccount/OA_Web_App......
  • Centos6无法使用yum问题
    原因一:网络连接问题,检查是否可以连接外部网络,可以使用ping www.baidu.com检查网络连接是否正常(很少概率)原因二:Centos6系统不再维护,所以关于Centos6的安装包基本都被移除了解决办法:改变源,改为国内的阿里镜像源依次执行下面五行命令即可1、sed-i"s|enabled=1|enabled=0|g"......
  • centos8使用Yum安装nodejs步骤方法、nodejs升级切换版本的方法
    先确认系统是否已经安装了epel-release包(EPEL是企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。):Bash#yuminfoepel-release如果有输出有关epel-release的已安装信息,则说明已经安装,如果提示没有安装或可安装,则安装......
  • 配置清华大学yum源
    清华大学开元软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/centos/备份原始CentOS-Base.repo文件[root@Centos7~]#mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak创建编辑新CentOS-Base.repo文件[root@Centos7~]#vim/etc/yum.re......
  • Linux yum 软件安装
    背景安装软件经常用到RPM,默认的源里面内容非常有限,在安装一些特殊软件的时候,需要自己制定源,例如Gitlab-ce,Gogs等。然而,源是个什么鬼,我从没搞明白过。借助安装Gogs的机会学习下。安装Gogs必须执行下面的指令:sudorpm--importhttps://rpm.packager.io/keyecho"[gogs]name=Reposi......