yum update 和 yum install 的區別
在使用該
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 install
andyum update
嗎?我問是因為使用
rpm -U
(upgrade) 命令,升級/安裝包不必存在,但yum update
(如果我沒記錯的話)包必須已經存在。我特別想知道使用它們的版本指定包的結果,例如
some-package-1.0
. 總而言之,我想知道的是我是否有兩個特定版本,例如some-package-1.0
和some-package-1.1
:
yum install
安裝 1.0 後是否會在 1.1 上執行,列出 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
所以總而言之
yum install
安裝 1.0 後是否會在 1.1 上執行,列出 2 個包?不可以。即使你已經告訴它進行安裝,如果軟體包已經安裝,YUM 仍然會執行更新。
- 執行
yum update some-package-1.1
成功會取代 some-package-1.0 嗎?是的。