fedrq 是一个查询 Fedora 和 EPEL 仓库的工具
项目描述
fedrq
一个查询 Fedora 和 EPEL 仓库的工具
fedrq 使查询 Fedora 或 EPEL 的任何分支变得容易。它使用 dnf Python 绑定,而不使用 dnf repoquery
。它允许查询反向依赖项、包含特定 Provide 或文件的包、SRPM 的子包以及包元数据。
此工具并不旨在取代 dnf repoquery
的所有功能。它为某些常见任务提供了比 dnf repoquery
更用户友好的界面。
安装
fedrq 在 gotmax23/fedrq 上有一个 Copr 仓库,其中包含发布版本。开发快照可在 gotmax23/fedrq-dev 获取。RPM 规范文件位于仓库根目录中。
fedrq 也已发布到 PyPI (请访问链接),因此您可以 pip install fedrq
安装。
使用 pip 安装软件包时,还需要一些额外的系统软件包。
以下为 dnf 后端所需的额外系统软件包
- python3-dnf(dnf 当前是 Fedora 的默认包管理器,因此应该已经安装)
以下为 libdnf5 后端所需的额外系统软件包
- python3-libdnf5
以下为始终需要的额外系统软件包
- python3-rpm
fedrq 默认使用 dnf 后端,但如果前者依赖项未安装,fedrq 将回退到 libdnf5 后端。用户可以使用 --backend
命令行选项 或在 fedrq 配置文件 中全局选择后端。
请注意,fedrq 只能安装到系统 Python 解释器。除非使用 --system-site-packages
,否则 fedrq 不能安装到 venv 中,因为它需要找到上述系统绑定。
fedrq check-config --dump
需要 tomli-w
。RPM 软件包对 python3-tomli-w
弱依赖。
容器镜像
fedrq 现在提供容器镜像。
quay.io/gotmax23/fedrq:latest
是使用registry.fedoraproject.org/fedora:latest
构建的。quay.io/gotmax23/fedrq:ubi9
是使用 ubi9 镜像构建的。它包含内置的rhel9
仓库配置,可以在使用 subscription-manager 注册的系统上运行时查询实际的 RHEL 仓库。
这两个镜像都使用来自 gotmax23/fedrq Copr 仓库的最新 fedrq RPM 软件包。
$ podman run --rm -v ~/.cache/fedrq:/fedrq-cache/fedrq:z quay.io/gotmax23/fedrq \
pkgs fedrq -Fnevrr
fedrq-0.9.0-1.fc39.noarch rawhide
fedrq-0.9.0-1.fc39.src rawhide-source
版本控制
本项目处于测试阶段,其版本控制方案遵循 semver。
请参阅 NEWS.md。
Python API
fedrq.config
模块和 fedrq.backend
软件包是公共 API。位于 fedrq.cli
下的所有内容都是内部内容。fedrq 主要是一个命令行工具,其 API 仅抽象了 CLI 使用的特定 dnf/libdnf5 功能。API 的主要目的是“repoquerying”,但您可以使用 fedrq 中的任何功能,然后访问底层的 dnf Base 对象以执行其他任务(如果需要)。
请参阅 docsite 上的 API 概述 以获取更多信息。请参阅 api-examples 以获取一些示例代码。如往常一样,将任何反馈、问题或问题直接发送到邮件列表(请参阅 贡献)。
文档
请参阅 fedrq 的 文档网站 以获取已渲染的手册页、变更日志和 Python API 文档。
贡献
开发、问题报告和项目讨论发生在 邮件列表(~gotmax23/fedrq@lists.sr.ht)。
请参阅 CONTRIBUTING.md。
致谢
感谢 dnf 维护者。这个工具受到 dnf repoquery
的启发,并使用 dnf Python 绑定。
许可协议
此项目遵循 REUSE 规范。总的来说
- 代码根据 GPL-2.0-or-later 许可。这是与 dnf 相同的许可。
- fedrq/data/ 中的配置和仓库文件为
UNLICENSE
。 - fedrq.spec 根据与 Fedora 相匹配的 MIT 许可。
- src/fedrq/data/repos 中的嵌入式仓库定义来自 fedora-repos.rpm,并使用 MIT 许可。这些定义仅在系统配置中不可用(即,在查询非 Fedora 系统上的 Fedora 仓库时)时使用。
enum.StrEnum
从 Cpython 3.11 复制,用于旧版本的 Python。这是 ~30 行 PSF-2.0 许可的代码。
SPDX-License-Identifier: GPL-2.0-or-later AND Unlicense AND MIT AND PSF-2.0
项目详细信息
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。