兰州维动成立于2006年10月,是一家主营网页设计与制作,微信公众号开发,微商城,电子商务,政府门户网站、集团公司官网及站群、销售及服务业务的大学生自主创业公司.
甘肃兰州市城关区焦家湾路260号天运小区A栋1002室
yum update和yum upgrade的真正区别
- 发布时间:2024-12-05 09:45:48
- 发布者:lzwd
- 浏览:0次
《Linux下的yum怎么升级?》提到指令yum有两个参数,update和upgrade,区别如下,
yum -y update:升级所有包同时,也升级软件和系统内核; yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。
公众号后台有位朋友提问了,
其实上述对update和upgrade的描述,不是非常准确,update和upgrade的区别能不能再形像点?
我们知道yum是红帽的包管理器,通过他可以从仓库检索、提取、安装和卸载包,让系统管理人员交互和自动化地管理rpm软件包,还可以将整个系统更新到当前最新的版本。其实,yum最大的优势,就是当更新、安装、卸载包的时候,会自动处理包之间的依赖关系,一次安装所有以来的软件包,但是,如果使用rpm安装,则需要自行安装这个包所有的依赖包,一次次下载、安装。
通过check-update选项,可以了解系统中哪些已安装的包当前有更新,如下所示,这些包存在可用的更新,
代码语言:javascript
复制
~]# 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
以第一行为例,
代码语言:javascript
复制
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表示更新的时候不会删除旧包,
代码语言:javascript
复制
[main]cachedir=/var/cache/yum/$basearch/$releasever keepcache=0debuglevel=2logfile=/var/log/yum.log exactarch=1obsoletes=1gpgcheck=1plugins=1installonly_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,防止因为替换,导致旧的软件包依赖出现问题。