【问题标题】:JFrog artifactory & Problem with MergeList /var/lib/apt/lists "(NewVersion2)" after adding pkg ported from RPM在添加从 RPM 移植的 pkg 后,JFrog 工件和 MergeList /var/lib/apt/lists "(NewVersion2)" 的问题
【发布时间】:2021-10-28 18:03:31
【问题描述】:

我在翻译的 RPM 中遇到了一个问题,因为我在翻译 RPM 时会影响到其他功能正常的 jFrog artifactory debian 软件包 repo。

我正在将一些 RPM 重新构建为 DEB 并推送到我的工件,以便我可以根据需要进行安装。

  1. 获取 RPM
  2. 转换为 .deb:

fpm --name ${name} -s rpm -t deb

  1. 推向人工制品

新包添加到工件后,apt update 开始失败:

Hit:6 https://myjfrog/platform-debian-remote bionic-updates InRelease
Get:7 https://myjfrog/artifactory/xxx-debian xxx-5.4 InRelease [5894 B]
Get:8 https://myjfrog/artifactory/xxx-debian xxx-5.4/snapshot amd64 Packages [8521 B]
Fetched 14.4 kB in 3s (5332 B/s)
Reading package lists... Error!
E: Problem parsing dependency 21
E: Error occurred while processing oracle-instantclient12.2-devel (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/myjfrog.io_artifactory_xxx-debian_dists_xxx_snapshot_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.

Apt 然后被破坏,直到我从工件存储库中清除文件,并删除 /var/lib/apt/lists/*

我在添加包之前和之后对上述 apt 列表文件进行了比较,差异只是为该包添加的节:

root@xxx-sbox2-pipeline:/var/lib/apt/lists# diff /tmp/*amd64-Packages
1332,1353d1331
< Package: xxx-oracle-instantclient12.2-basic
< Version: 12.2.0.1.0-1
< License: Oracle
< Vendor: Oracle Corporation
< Architecture: amd64
< Maintainer: <@a15566901d8d>
< Installed-Size: 216337
< Depends: libaio, rpmlib(FileDigests) <= 4.6.0-1, rpmlib(PayloadFilesHavePrefix) <= 4.0-1, rpmlib(CompressedFileNames) <= 3.0.4-1, rpmlib(PayloadIsXz) <= 5.2-1
< Conflicts: oracle-instantclient12.2-basiclite
< Provides: libclntsh.so.12.1, oracle-instantclient12.2-basic, oracle-instantclient12.2-basic(x86-64)
< Section: Applications/File
< Priority: extra
< Homepage: http://www.oracle.com/
< Description: Instant Client allows you to run your applications without installing the standard Oracle client or having an ORACLE_HOME.  OCI, OCCI, ODBC, and JDBC applications work without modification, while using significantly less disk space than before.  No recompile, no hassle.
<  .
<  This is the Basic package, supporting OCI, OCCI, and JDBC-OCI with all
<  languages.
< Filename: pool/snapshot/xxx-oracle-instantclient12.2-basic/xxx-oracle-instantclient12.2-basic_12.2.0.1.0-1_amd64.deb
< SHA1: 74843aefc7f559b40e1b6cacf96397b7a047bd12
< SHA256: 1e9e1e592f21edf12703d93e56b58ca5c30a329659456bdfaf0ffa39b13784ce
< Size: 68889880
<

此时所有 apt 命令都会失败,更新、安装……直到我重复 repo purge/rebuild index 和 rm /var/lib/apt/lists/* 过程。

我的包构建/上传到工件过程已经使用了很长时间。我一直使用它作为我唯一的包分发机制,直到现在才遇到任何问题。 正是这组 oracle instantclient12.2 包可以做到这一点。

相当 PITA,因为它需要手动修复任何实例,当该文件存在于存储库中时,它碰巧更新了它的包缓存。

我看到过与“MergeList 出现问题...(NewVersion2)”错误相关的类似报告,但它们似乎涉及 /var/lib/apt/lists/ 损坏,这显然是自己造成的。

https://askubuntu.com/questions/443244/eerror-occurred-while-processing-iw-newversion2 https://www.linuxquestions.org/questions/debian-26/apt-get-problem-problem-parsing-dependency-depends-906264/

尝试fpmalien 进行rpm-> deb 转换,没有区别。 (实际上,生成的 debs 的有效载荷和 DEBIAN/ 是相同的。很高兴知道两者之间的差异为零)

是什么导致“MergeList 出现问题”? 为什么这种情况是“特殊的”,而所有其他包都很好? 为什么只使用“转换后的”RPM? 里面有“甲骨文”这个词吗?在这一点上,我几乎会相信。

【问题讨论】:

  • jFrog 承认这是一个问题,并将得到解决。当我得到它们时会发布更新。仍然没有关于元数据中究竟是什么问题导致工件出错的消息。这是我真正想知道的,所以我可以避免它。

标签: linux ubuntu artifactory apt jfrog


【解决方案1】:

我相信这与没有控制文件的 debian 软件包破坏元数据有关 - RTFACT-20460

【讨论】:

  • 同时,。是的,缺少控制文件会导致其他问题,并非如此。这个特殊案例有所有案例的控制文件。
【解决方案2】:

这是来自 jFrog 的更新。 https://www.jfrog.com/jira/browse/RTFACT-26334

他们仍在研究如何处理元数据错误的包。

我开始使用的特定示例有一些来自 rpm 的外星人转换的无效依赖版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2020-04-21
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多