You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免YUM更新php-common时移除自制依赖RPM包?

解决YUM更新php-common时误删自定义RPM包的问题

我之前处理过好几起类似的自定义RPM依赖系统组件导致更新冲突的情况,结合你的需求(已经确认新版本php-common兼容你的mypackage),这里有几个可行的方案,从临时应急到长期根治都有:

方案一:版本锁定保护你的mypackage

这是最安全的临时解决方案,通过yum的版本锁定插件阻止yum移除或更新你的包:

  1. 先安装版本锁定插件(如果未安装):
    yum install yum-plugin-versionlock
    
  2. 锁定mypackage,防止它被yum操作:
    yum versionlock add mypackage
    
  3. 现在执行php-common的更新,yum会跳过对mypackage的移除操作:
    yum update php-common
    
  4. 后续如果需要更新或移除mypackage,记得先解锁:
    yum versionlock delete mypackage
    

方案二:强制更新php-common并跳过依赖检查

如果你百分百确认新版本php-common完全兼容,也可以直接跳过依赖检查强制更新,但这个方法要谨慎使用(可能会影响其他依赖php-common的系统组件):

yum update php-common --nodeps

或者用rpm命令直接强制升级:

rpm -Uvh --force /path/to/php-common-new-version.rpm

注意:--nodeps和--force会绕过所有依赖校验,只推荐在你完全清楚风险的情况下使用。

方案三:重构RPM包,修复依赖兼容问题

这是长期根治的最佳方案,修改你mypackage的spec文件,让它的依赖声明兼容php-common的新版本:

  1. 打开mypackage的spec文件,找到Requires字段,原来的可能是类似:
    Requires: php-common = 7.4.33
    
  2. 修改为兼容更高版本的格式,比如允许php-common大于等于当前版本:
    Requires: php-common >= 7.4.33
    
    或者用通配符匹配主版本兼容:
    Requires: php-common = 7.4*
    
  3. 重新构建RPM包并安装,之后再更新php-common就不会触发移除mypackage的提示了。

方案四:临时禁用yum的冲突检查(不推荐)

还有一种更激进的方法,通过修改yum配置临时关闭冲突检查,但可能导致系统依赖混乱,只作为最后手段:

  1. 编辑yum的主配置文件/etc/yum.conf,添加或修改:
    skip_broken=1
    
  2. 执行更新后,记得改回原来的配置,避免后续操作出现意外。

内容的提问来源于stack exchange,提问作者Arturo Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:29:26