Yum

yum update 和 yum install 的區別

  • April 30, 2018

在使用該rpm命令時,我注意到如果我安裝some-package-1.0並執行了另一個rpm -ivh some-package-1.1,當我執行以下操作時,這兩個包都會被列出rpm -qa | grep some-package

some-package-1.0
some-package-1.1

但是,如果我通過 升級而不是安裝 1.1,rpm -Uvh some-package-1.1我會在執行rpm -qa | grep some-package.

現在同樣的行為適用於yum installandyum update嗎?

我問是因為使用rpm -U(upgrade) 命令,升級/安裝包不必存在,但yum update(如果我沒記錯的話)包必須已經存在。

我特別想知道使用它們的版本指定包的結果,例如some-package-1.0. 總而言之,我想知道的是我是否有兩個特定版本,例如some-package-1.0some-package-1.1

  1. yum install安裝 1.0 後是否會在 1.1 上執行,列出 2 個包?
  2. 執行yum update some-package-1.1成功會取代some-package-1.0嗎?

YUM 和 RPM 之間的主要區別在於yum知道如何解決依賴關係,並且可以在工作時獲取這些額外的包。儘管rpm可以提醒您注意這些依賴項,但它無法獲取其他軟體包。

至於安裝與升級。這兩種工具都可以執行安裝,RPM 甚至允許您同時安裝多個版本,但 YUM 會告訴您該軟體包已經安裝。因此,沒有 YUM 將不允許您安裝多個版本。

至於yum update,這將以兩種方式之一作出反應。如果您告訴它要更新的軟體包,它會嘗試這樣做,下載所有必要的依賴項並安裝它們。如果您在沒有任何包名的情況下執行它,yum update將嘗試更新系統上安裝的每個包。

如果你使用yum upgrade它,它的作用與 相同yum update,除了它會嘗試刪除任何被標記為“過時”的包。

例子

這是一個與您自己的情況不同的場景。有一個新版本vim-X11可用。

$ yum check-update vim-X11 | expand
Loaded plugins: auto-update-debuginfo, changelog, langpacks, refresh-packagekit

vim-X11.x86_64                     2:7.4.417-1.fc19                      updates

我目前在這個版本:

$ rpm -q vim-X11 | expand
vim-X11-7.4.179-1.fc19.x86_64

當我們嘗試安裝它時:

$ sudo yum install vim-X11
...   
=================================================================================================================================================================
Package                                 Arch                              Version                                      Repository                          Size
=================================================================================================================================================================
Updating:
vim-X11                                 x86_64                            2:7.4.417-1.fc19                             updates                            1.2 M
Updating for dependencies:
vim-common                              x86_64                            2:7.4.417-1.fc19                             updates                            5.9 M
vim-enhanced                            x86_64                            2:7.4.417-1.fc19                             updates                            1.0 M
....
Running transaction
 Updating   : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            1/6 
 Updating   : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          2/6 
 Updating   : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               3/6 
 Cleanup    : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               4/6 
 Cleanup    : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          5/6 
 Cleanup    : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 
 Verifying  : 2:vim-enhanced-7.4.417-1.fc19.x86_64                                                                                                          1/6 
 Verifying  : 2:vim-X11-7.4.417-1.fc19.x86_64                                                                                                               2/6 
 Verifying  : 2:vim-common-7.4.417-1.fc19.x86_64                                                                                                            3/6 
 Verifying  : 2:vim-enhanced-7.4.179-1.fc19.x86_64                                                                                                          4/6 
 Verifying  : 2:vim-X11-7.4.179-1.fc19.x86_64                                                                                                               5/6 
 Verifying  : 2:vim-common-7.4.179-1.fc19.x86_64                                                                                                            6/6 

所以總而言之

  1. yum install安裝 1.0 後是否會在 1.1 上執行,列出 2 個包?

不可以。即使你已經告訴它進行安裝,如果軟體包已經安裝,YUM 仍然會執行更新。

  1. 執行yum update some-package-1.1成功會取代 some-package-1.0 嗎?

是的。

引用自:https://unix.stackexchange.com/questions/157448