rpm阶:按依赖顺序对RPM包进行排序

[bsd3型,分布,图书馆,程序][建议标签]

rpmbuild-order工具根据构建依赖项对源RPM包进行排序,这样才能按照正确的顺序建造。它通过读取RPM来实现这一点打包spec文件,然后根据它们的构建依赖项。代码是由亨宁·泰勒曼(Henning Thielemann)的cabal-sort演变而来的。它还可以排序一个或多个包的依赖项或反向依赖项在相邻目录中检出的包中(可以是有助于查看低级包更改时哪些包受到影响,或者哪些程序包是多个程序包之一的依赖项)。它还支持为bcond等设置RPM选项,这可能会影响相关性。它还可以输出依赖关系图。从0.4版开始,提供了库API。


[跳到自述]

下载

版本[RSS(RSS)] 0.1,0.2,0.2.1,0.3,0.3.1,0.4.0,0.4.1,0.4.2,0.4.2.1,0.4.3,0.4.3.1,0.4.3.2,0.4.4,0.4.4.1,0.4.5,0.4.6,0.4.6.1,0.4.7,0.4.8,0.4.9,0.4.10,0.4.11(信息)
更改日志 更改日志.md
依赖关系 基础(<5),对案件敏感,目录(>=1.2.5),额外的(>=1.6.4),功能梯度照明(>=5.5.4),文件路径,格拉维兹,正则表达式-tdfa,rpm阶,simple-cmd(简单命令)(>=0.2.3),简单的md-args[细节]
许可证 BSD-3条款
版权 2010-2018年亨宁·蒂勒曼,2018-2024年Jens Petersen<petersen@redhat.com>
作者 延斯·彼得森<petersen@redhat.com>,亨宁·泰勒曼<haskell@henning-thieldemann.de>
维护人员 延斯·彼得森<petersen@redhat.com>
类别 分发
主页 https://github.com/juhp/rpmbuild-order
Bug跟踪器 https://github.com/juhp/rpmbuild-order/issues
源回购 头部:git克隆https://github.com/juhp/rpmbuild-order
已上传 通过延斯·彼得森2024-02-18T16:32:03Z
分配 费多拉:0.4.11,LTSHaskell公司:0.4.11,堆叠:0.4.11
反向依赖关系 1直接,0间接[细节]
可执行程序 rpm阶
下载 总计5239人(过去30天内有53人)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 可用文档[生成日志]
截至2024-02-18,所有报告的构建都失败[所有1个报告]

rpmbuild-order自述-0.4.11

[返回包描述]

GitHub CI 黑客攻击 许可证

rpm阶

这是一个按构建依赖顺序对RPM源包进行排序的工具。该代码最初派生自cabal-sort公司亨宁·泰勒曼(Henning Thielemann)。

用法

$rpmbuild-order--版本

0.4.11

$rpmbuild-order--帮助

按生成依赖项对包进行排序用法:rpmbuild-order[--version]COMMAND按生成依赖项顺序对包源(规范文件)进行排序可用选项:-h、 --help显示此帮助文本--版本显示版本可用命令:对排序包进行排序相邻包目录中的deps排序依赖项rdeps排序相邻包目录中的依赖项依赖层的层顺序输出适用于链式构建的链式输出leaves包图形顶部叶子的列表roots列出最低根包render使用graphviz显示图形
$rpmbuild-order排序mycore mylib myappmylib mycore myapp

传递的参数可以是包含包的目录或规范文件。

如果依存关系图有循环,则会输出错误循环和任何最短路径子循环的列表。

使用rpmbuild命令deps公司rdeps公司命令已排序的可以获得包的依赖关系和反向依赖关系在当前已签出的包源集中。ie如果您有一个包含包的目录:

pkg1/pkg2/lib1/lib2/lib3/misc1/

然后输出rpm订单deps pkg1可能是lib1 lib3 pkg1例如。

这个提供命令显示包依赖关系图使用graphviz和X11或可以将点格式打印到stdout。

图书馆

从0.4版开始,还提供了一个库。

有两个模块:

  • 分发。每分钟转数。生成。订单为提供更高级别的功能在生成依赖项顺序和输出中对包进行排序。它建立在:
  • 分发。每分钟转数。生成。图表提供用于生成RPM依赖关系图

有关更多详细信息,请参阅他们的文档。

注意事项和已知问题

  1. 处理.pc文件的grepping.spec提供的pkgconfig()

  2. 给定包A、B、C,其中C依赖于B,B依赖于A,然后你打电话

    rpmbuild订单排序C.spec A.spec

    如果C不直接依赖于a,那么输出可能是错误的。即使顺序正确,输出中也缺少B因此,在这种情况下,程序包列表不能可靠使用用于一系列构建。

    然而deps公司订单命令take考虑其他相邻的包目录。

  3. repoquery不用于将元依赖关系或文件解析为包。因此,如果包BuildRequires是一个文件,那么它将不会解析为包。这可能有一天会得到解决,但对于BuildRequires与Requires的比较。

  4. rpmspec用于解析规范文件(用于宏扩展等):因此,丢失宏包在某些情况下可能会导致错误的结果。

  5. 自版本0.4.6以来,现在支持使用动态buildrequires(在Fedora:golang、python、ruby和rust包中)。

  6. 由于版本0.4.8%{_isa}后缀Provides被x86_64过滤掉。

安装

rpmbuild-order打包在Fedora Linux中。

从源头构建

使用电缆rpm内置和电缆安装烟囱安装.