我发现我的问题在标题中的一个短语中提问有点复杂,所以我将在下面更详细地解释这个问题:
我有一个始终在一台服务器上运行的应用程序。它在一台服务器上运行Web服务器,数据库和另一项服务。此应用程序使用RPM安装和升级,到目前为止一直运行良好。
现在需要将应用程序分开,以便3个服务可以在不同的服务器中运行。但是仍然需要在一台服务器中保留所有服务的选项。
为了做到这一点,我开始通过将每个服务分成一个子包来修改RPM规范文件。到目前为止,我的测试表明,单独安装每个子包都可以正常工作。
但是,当我尝试使用新的元数据包(取决于子包)升级原始应用程序的现有版本时,我发现即使其中一个子包失败,yum仍会安装所有子包。
我认为这是因为yum在实际安装软件包之前会检查依赖项,因此它表示" Dependencies Resolved"然后,如果其中一个子包未能安装,它仍会安装其他子包。这不是很好,因为我不想部分安装/升级元数据包。
顺便说一下,spec文件基本上是让metapackage依赖于所有子包而且它已经淘汰了原始包。希望这不会太混乱。
我想知道是否有任何东西可以添加到spec文件中以使其无法安装,或者甚至在另一个子包安装失败时(安装/升级metapackage时)卸载子包。或者,保留两个单独的spec文件是否更好?还有其他选择吗?
非常感谢。