rpm 有一个-i
( --install
) 选项用于安装软件包
rpm 有一个-U
( --upgrade
) 选项用于安装或升级软件包
这红帽文档表明这rpm -i
是完全可以接受的。
然而,我见过的每个文档都建议使用-U
,即使是第一次安装该软件包。
为什么rpm -U
通常优先选择rpm -i
?
答案1
大多数文档建议-U
结束,-i
因为-i
可能失败如果该软件包已经安装,或者已经安装了早期版本;-U
即使根本没有安装包中的“升级”,while也会成功。当提供操作方法时,就像在文档中一样,通常最好给出失败状态可能性较低的命令。
答案2
该文档实际上并没有说-i
应该用于升级。它说应该使用它来升级内核。原因是,如果系统无法使用新内核启动,您仍然可以使用旧内核。然而,这是一个特殊情况 - 内核包几乎是正交的,因为它们不拥有冲突的文件,因为所有内容都是版本化的(来自不同内核包的内核、initrd 和库模块可以彼此共存)。
普通的用户空间包很少如此独立。如果您用来rpm -i
执行升级,您可能最终会同时安装两个同名(和不同版本)的软件包,而较早的软件包会被破坏(一半被覆盖)。实际上可以将同一个包安装两次 - 一旦发生这种情况,一些工具和/或人们可能会感到相当困惑。