使用 localinstall 更新 yum 包
Update yum package using localinstall
如果使用 yum localinstall 安装软件包,如下所示:
yum -y localinstall --nogpgcheck some-package-1.0.0.rpm
现在,如果我尝试 运行:
yum -y localinstall --nogpgcheck some-package-2.0.0.rpm
它会用新版本替换整个旧版本还是保留两个版本?
答案是,这取决于some-package
是如何打包的。一般来说,大多数 .rpms
与 foo-version-release.rpm
一起被同一个包 foo
与 version++
and/or release++
.
查看您的 some-package
,如果您 运行 yum localinstall some-package-2.0.0.rpm
(注意,不是 -y
),那么您会看到来自 yum
的消息,像这样:
Resolving Dependencies
--> Running transaction check
---> Package foo.x86_64 0:1.0.0 will be updated
---> Package foo.x86_64 0:2.0.0 will be an update
这表明 yum
将更新包并删除旧包。 yum
解决了这些依赖关系,而 rpm -ivh
则不会。
现在,有一些特殊情况,例如 kernel
除非您手动调用 rpm -Uvh kernel*.rpm
命令,否则它将与旧版本并排安装在系统上。
yum localinstall
的等效命令有两个,
# This will fail if some-2.0.0 is designed to obsolete some-1.0.0
$ rpm -ivh --test some-2.0.0.rpm
而以下会成功:
$ rpm -Uvh --test some-2.0.0.rpm
注意,我正在使用--test
做一个dry-运行。需要将其删除才能进行真正的安装。
既然有基于回购的包管理器,我更喜欢对所有东西使用相同的 pkg 管理器。
它似乎没有被记录但确实可以使用标准的 yum args:
yum -y localupdate some-package-2.0.0.rpm
如果使用 yum localinstall 安装软件包,如下所示:
yum -y localinstall --nogpgcheck some-package-1.0.0.rpm
现在,如果我尝试 运行:
yum -y localinstall --nogpgcheck some-package-2.0.0.rpm
它会用新版本替换整个旧版本还是保留两个版本?
答案是,这取决于some-package
是如何打包的。一般来说,大多数 .rpms
与 foo-version-release.rpm
一起被同一个包 foo
与 version++
and/or release++
.
查看您的 some-package
,如果您 运行 yum localinstall some-package-2.0.0.rpm
(注意,不是 -y
),那么您会看到来自 yum
的消息,像这样:
Resolving Dependencies
--> Running transaction check
---> Package foo.x86_64 0:1.0.0 will be updated
---> Package foo.x86_64 0:2.0.0 will be an update
这表明 yum
将更新包并删除旧包。 yum
解决了这些依赖关系,而 rpm -ivh
则不会。
现在,有一些特殊情况,例如 kernel
除非您手动调用 rpm -Uvh kernel*.rpm
命令,否则它将与旧版本并排安装在系统上。
yum localinstall
的等效命令有两个,
# This will fail if some-2.0.0 is designed to obsolete some-1.0.0
$ rpm -ivh --test some-2.0.0.rpm
而以下会成功:
$ rpm -Uvh --test some-2.0.0.rpm
注意,我正在使用--test
做一个dry-运行。需要将其删除才能进行真正的安装。
既然有基于回购的包管理器,我更喜欢对所有东西使用相同的 pkg 管理器。
它似乎没有被记录但确实可以使用标准的 yum args:
yum -y localupdate some-package-2.0.0.rpm