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

安装自定义RPM时触发Sqlite异常:no such column: _collapse_libc_requires

关于yum/sqlite抛出no such column: _collapse_libc_requires异常的成因分析

问题场景

  • 执行自定义RPM安装时,Python代码抛出sqlite3.OperationalError: no such column: _collapse_libc_requires异常
  • 该异常并非每次安装都会触发,且不同于常见的SQL插入遗漏值场景,直接出现在yum的sqlite操作逻辑内部
  • 暂不采用临时修复掩盖问题,需明确根因

异常成因

_collapse_libc_requires是yum内部用于处理libc依赖折叠的字段,异常核心原因如下:

  • yum的sqlite仓库数据库(sqlitesack)中未创建该字段,但代码在生成元数据时尝试访问对应列
  • 触发路径:createrepo生成元数据时,调用yum的xml_dump_primary_metadata()方法,进而检查_collapse_libc_requires属性,而该属性映射的sqlite表列不存在
  • 偶发原因:可能是仓库元数据生成过程中断、缓存损坏,或是yum/sqlitesack组件版本更新后数据库结构未同步

完整回溯信息

Sqlite DBs complete
ERROR: Traceback (most recent call last):
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlitesack.py", line 46, in newFunc
ERROR:     return func(*args, **kwargs)
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlitesack.py", line 238, in _sql_MD
ERROR:     executeSQL(cur, sql, *args)
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlutils.py", line 168, in executeSQLQmark
ERROR:     return cursor.execute(query, params)
ERROR: sqlite3.OperationalError: no such column: _collapse_libc_requires
ERROR: During handling of the above exception, another exception occurred:
ERROR: Traceback (most recent call last):
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlitesack.py", line 269, in __getattr__
ERROR:     (self.pkgId,)).fetchone()
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlitesack.py", line 55, in newFunc
ERROR:     raise Errors.RepoError(str(e))
ERROR: yum.Errors.RepoError: no such column: _collapse_libc_requires
ERROR: During handling of the above exception, another exception occurred:
ERROR: Traceback (most recent call last):
ERROR:   File "/usr/share/createrepo/genpkgmetadata.py", line 308, in <module>
ERROR:     main(sys.argv[1:])
ERROR:   File "/usr/share/createrepo/genpkgmetadata.py", line 276, in main
ERROR:     mdgen.doPkgMetadata()
ERROR:   File "/usr/lib/python3.7/site-packages/createrepo/__init__.py", line 424, in doPkgMetadata
ERROR:     self.writeMetadataDocs(packages)
ERROR:   File "/usr/lib/python3.7/site-packages/createrepo/__init__.py", line 702, in writeMetadataDocs
ERROR:     save_keptpkgs(pkg)
ERROR:   File "/usr/lib/python3.7/site-packages/createrepo/__init__.py", line 621, in save_keptpkgs
ERROR:     self.primaryfile.write(po.xml_dump_primary_metadata())
ERROR:   File "/usr/lib/python3.7/site-packages/yum/packages.py", line 1339, in xml_dump_primary_metadata
ERROR:     msg += misc.to_unicode(self._dump_format_items())
ERROR:   File "/usr/lib/python3.7/site-packages/yum/packages.py", line 1203, in _dump_format_items
ERROR:     msg += self._dump_requires()
ERROR:   File "/usr/lib/python3.7/site-packages/yum/packages.py", line 1268, in _dump_requires
ERROR:     if hasattr(self, '_collapse_libc_requires') and self._collapse_libc_requires:
ERROR:   File "/usr/lib/python3.7/site-packages/yum/sqlitesack.py", line 273, in __getattr__
ERROR:     raise KeyError(str(e))
ERROR: KeyError: 'no such column: _collapse_libc_requires'

补充说明

异常发生在自定义RPM安装流程中,属于偶发现象,并非每次安装都会触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 06:32:04