在一台服务器上多次安装单个rpm

时间:2012-06-04 20:18:30

标签: rpm

您好,并提前感谢任何人可以为此问题提供的任何答案。

我有一个RPM,它本质上是一个爆炸WAR的包装器。在我的服务器上运行

rpm -i myRPM.rpm

这个工作得很好,一切都适合这个世界。然后我想用--relocate触发器再次运行rpm以创建相同的安装。理想情况下,我想让它在rpm数据库中安装一个带有增量实例或类似性质的新条目的应用程序。

我可以通过运行

强制安装
rpm -i --force --relocate  OLDPATH=NEWPATH myRPM.rpm

然而,这里的问题是旧版本不再由rpm管理。 我有什么办法可以按照我想要的方式进行这项工作吗?

2 个答案:

答案 0 :(得分:3)

没有。 RPM维护一个文件数据库,安装RPM等。这个数据库的设计方式,一个文件(通常)只能属于1 RPM,这个RPM只有1个这个文件的副本。即,它无法在多个位置跟踪它的多个副本(--relocate)。

一般来说,重新定位RPM是一个非常糟糕的主意 - 如果您依赖于此应用程序,我会认真重新考虑。

请参阅:http://rpm.org/wiki/PackagerDocs/MultipleVersions,了解如何处理此问题。

答案 1 :(得分:0)

这是一个迟到的答案 - 但也许还为时不晚。

如果您确实需要在同一台机器上使用rpm安装多个版本的独特软件,您只需使用备用rpm数据库。

mkdir $HOME/rpm 
rpm --dbpath $HOME/rpm --initdb # older version need the initialization
rpm --dbpath $HOME/rpm -i --relocate OLDPATH=NEWPATH myRPM.rpm

此方法可用于在一台计算机上进行热部署或蓝/绿部署守护进程。