CentOS中的 yum upgrade 和 yum update 的區別


  通過 man yum 的幫助信息了解 yum update 和 yum upgrade:

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 是一樣的

  然而,update 即使不附帶 --obsoletes 選項時,在默認的配置中已經將其設置為true(開啟),在 /etc/yum.conf 文件中可以查看到默認的配置信息:

[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 沒有區別,都是將系統包更新到最新的版本並且強制刪除過時的老版本,並且都會升級內核版本,這種更新操作是危險的,因為可能有些運行中的服務仍舊依賴着舊版本。

  因此我們可以修改默認配置,sed -i 's/obsoletes=1/obsoletes=0/' /etc/yum.conf,從而使update在進行系統包更新時保留舊版本。

  如果我們不想升級內核版本,還需要添加 echo exclude=kernel* >> /etc/yum.conf。

  參考:

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

  https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-configuring_yum_and_yum_repositories


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM