经过 man yum 的帮助信息了解 yum update 和 yum upgrade:php
update If run without any packages, update will update every currently installed package. If one or more packages or package globs are specified, Yum will only update the listed packages. While updating packages, yum will ensure that all dependencies are satisfied. (See Specifying package names for more information) If the packages or globs specified match to packages which are not currently installed then update will not install them. update operates on groups, files, provides and filelists just like the "install" command. If the main obsoletes configure option is true (default) or the --obsoletes flag is present yum will include package obsoletes in its calculations - this makes it better for distro-version changes, for example: upgrading from somelinux 8.0 to somelinux 9. Note that "update" works on installed packages first, and only if there are no matches does it look for available packages. The difference is most noticeable when you do "update foo-1-2" which will act exactly as "update foo" if foo-1-2 is installed. You can use the "update-to" if you’d prefer that nothing happen in the above case. upgrade Is the same as the update command with the --obsoletes flag set. See update for more details.
从帮助信息咱们能够看到,upgrade 与 update --obsoletes 是同样的。html
然而,update 即便不附带 --obsoletes 选项时,在默认的配置中已经将其设置为true(开启),在 /etc/yum.conf 文件中能够查看到默认的配置信息:linux
[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=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
就是说默认状况下 update 和 upgrade 没有区别,都是将系统包更新到最新的版本而且强制删除过期的老版本,这种更新操做是危险的,由于可能有些运行中的服务仍旧依赖着旧版本。centos
所以咱们能够修改默认配置,sed -i 's/obsoletes=1/obsoletes=0/' /etc/yum.conf,从而使用 update 来进行系统包的更新。app
参考:ide