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

RPM转DEB上传JFrog Artifactory后apt update报MergeList错误如何解决?

故障根因

你遇到的Problem with MergeList错误核心原因是RPM转DEB过程中,RPM专属的内部依赖被错误带入了DEB包的元数据,apt无法识别这类依赖格式导致解析失败。

从你提供的Packages文件差异可以看到,问题包的Depends字段包含4个rpmlib(xxx)开头的依赖项,这类依赖是RPM包管理器的内部规则依赖,仅在RPM生态内有效,Debian系的apt完全不识别该类依赖的语法和语义,解析到第21个依赖项(对应错误提示的Problem parsing dependency 21)时直接崩溃,导致整个软件源索引文件解析失败。


针对性问题解答

为什么只有这组Oracle包会触发故障?

其他你转换过的RPM包在构建时没有内置这类rpmlib前缀的内部依赖声明,或依赖项数量未触发apt的解析异常;而Oracle Instant Client的官方RPM包在构建时强制嵌入了多个rpmlib规则依赖,转换工具默认不会过滤这类RPM专属依赖,就直接写入了DEB包的control元数据中。

为什么只有RPM转换得到的包会出现该问题?

原生DEB包的构建流程完全遵循Debian生态的依赖规则,不会引入RPM生态专属的依赖项;只有跨格式转换的场景下,转换工具未做生态专属依赖过滤时,才会将RPM侧的无效依赖带入DEB元数据。

另外你当前依赖里写的libaio也不符合Debian系的包命名规则,Debian/Ubuntu下对应的包名为libaio1,也可能后续安装时触发依赖缺失问题。


修复方案

在使用fpm执行转换时,添加参数过滤所有rpmlib前缀的依赖,同时修正依赖名称即可:

fpm --name ${name} -s rpm -t deb \
  --depends libaio1 \
  --exclude-deps 'rpmlib*' \
  你的原RPM包路径

转换完成后可以执行dpkg -I 生成的deb包查看DEBIAN/control的依赖字段,确认无rpmlib相关依赖后再上传到Artifactory即可。


内容的提问来源于stack exchange,提问作者Bruce Edge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:18:05