yum更新与yum安装之间的区别


20

使用该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单个软件包(1.1)获得所需的结果rpm -qa | grep some-package

现在,是否对yum install和适用相同的行为yum 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吗?

Answers:


31

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吗?

是。


感谢您提供详尽的答案。因此,yum install当我用版本指定软件包名称时,我可以继续使用它,而不用担心它会安装多个版本。我想使用的yum update情况是仅指定包名称,对吗?
kaizenCoder 2014年

@aspiringCodeArtisan-部分正确。yum install如我的示例所示,它将检测到已经安装了一个软件包,并将切换到更新它与安装它。
slm

@slm-为了明确起见,rpm可以搜索类似于zypper的存储库来搜索特定软件包吗?
动机

1
@Motivated- rpm不像dpkg,它只涉及管理本地磁盘上的文件。对于系统“黑白”的仓库“管理” +回购,您需要类似yum或的东西dnf
slm

1
@Motivated- rpm用于从url安装时,也不会执行任何软件包dep来将其拉入,它仅在本地下载rpm,然后进行安装。
slm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.