DNF5-REPOQUERY(8)

πŸ“¦
version 5.4.6.0 Β· 4 versions
, in fedora 44

✨ DNF5-REPOQUERY(8) ✨

okay bestie, gather round, because this is dnf5-repoquery β€” it lives in the dnf5 manual, section 8, and it is the glow-up of package querying. It's a whole command, it's a whole vibe, and we're getting into every single flag. no skimming, no skipping, we go all the way. πŸ’…


🌸 NAME 🌸

dnf5-repoquery β€” the Repoquery Command. that's it, that's the name, she's iconic, she said what she said. πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

dnf5 repoquery [options] [<package-spec-NIF>...]

like. that's the shape of it. options in, package specs in, packages out. slay.


✨ DESCRIPTION ✨

so the repoquery command in DNF5 is literally there to query packages by matching whatever input criteria you throw at it. you give it criteria, it gives you packages. that's the whole relationship, and honestly? it's a healthy one. 🫢

the arguments you define in the spec list get used as <package-file-spec>. yes, the synopsis says <package-spec-NIF> and the description says <package-file-spec> β€” they're both in here because both are in the original, and we do not edit the queen's paperwork. periodt. πŸ‘‘


πŸ’… OPTIONS πŸ’…

okay this is the main event. every flag, no cap, in order. buckle up bestie, we're going long. πŸŽ€

  • --advisories=ADVISORY_NAME,... β€” pulls in the content that lives inside advisories with the name you give. this one is a list option. expected values are advisory IDs, like FEDORA-2201-123. heads up though: any transaction command (install, upgrade) will fail with an error if there's no existing advisory in your list β€” you can dodge that with the --skip-unavailable switch. πŸ™ˆ
  • --advisory-severities=ADVISORY_SEVERITY,... β€” same deal but filtered by severity instead. list option. accepted values are: critical, important, moderate, low, none. pick your poison, they're all valid. πŸ’€
  • --arch=ARCH,... β€” limits to packages of these architectures. list option. simple, clean, no notes. ✨
  • --available β€” queries available packages. this is the default behavior, so if you did nothing, congrats, you already did this. you can also combine it with --installed to query both installed and available packages at once. main character energy, honestly. πŸ‘‘
  • --bugfix β€” includes content contained in bugfix advisories. that's the whole thing. πŸ›
  • --bzs=BUGZILLA_ID,... β€” includes content contained in advisories that fix a ticket with the given Bugzilla ID. list option. expected values are numeric IDs, e.g. 123123. warning: any transaction command (install, upgrade) will fail with an error if there's no advisory fixing the given ticket β€” bypass it with --skip-unavailable. 😭
  • --cves=CVE_ID,... β€” includes content contained in advisories that fix a ticket with the given CVE (Common Vulnerabilities and Exposures) ID. list option. expected values are string IDs in CVE format, e.g. CVE-2201-0123. and yeah β€” any transaction command (install, upgrade) will fail with an error if there's no advisory fixing the given ticket, which you can bypass with --skip-unavailable. πŸ”₯
  • --disable-modular-filtering β€” includes packages of inactive module streams. the ones that were sitting in the corner at the party. πŸŽ€
  • --duplicates β€” limits to installed duplicate packages, meaning more package versions for the same name and architecture. installonly packages are excluded from this set, so don't come for them, they're not in it. πŸ’…
  • --enhancement β€” includes content contained in enhancement advisories. glow-up content only. ✨
  • --exactdeps β€” limits to packages that require the <capability> specified by --whatrequires or --whatdepends. this option is stackable with --whatrequires or --whatdepends only β€” don't try to pair it with anything else, she doesn't do that. πŸ™…
  • --extras β€” limits to installed packages that are not present in any available repository. the uninvited guests. πŸ‘€
  • -f, --file=FILE,... β€” limits to packages that own these files. list option. yes, the short flag is -f, yes it's cute, yes it works. πŸ¦‹
  • --installed β€” queries installed packages. can be combined with --available to query both installed and available packages. teamwork makes the dream work. 🫢
  • --installed-from-repo=REPO_ID,... β€” filters installed packages by the ID of the repository they were installed from. so like, where did you come from, little package. 🌈
  • --installonly β€” limits to installed installonly packages. (and remember, from --duplicates above, installonly packages get excluded from that set β€” that's just how it is.) πŸŽ€
  • --latest-limit=N β€” limits to the N latest packages for a given name.arch. and if N is negative? then it's all except N latest. flip the sign, flip the meaning. iconic. πŸ’…
  • --leaves β€” limits to groups of installed packages that are not required by other installed packages. the independents. the self-sufficient queens. πŸ‘‘
  • --newpackage β€” includes content contained in newpackage advisories. fresh out the box. πŸ“¦
  • --providers-of=PACKAGE_ATTRIBUTE β€” after filtering is done, this gets the selected attribute of packages and outputs the packages that provide it. the outputted packages are limited by --available, --installed and --arch options. it supports: conflicts, depends, enhances, obsoletes, provides, recommends, requires, requires_pre, suggests, supplements. that's the full list, bestie, don't improvise. ✨
  • --recent β€” limits to only recently changed packages. new in town, just dropped. πŸ”₯
  • --recursive β€” okay so this one is stackable with --whatrequires or --providers-of=requires only. got it? okay:
    • when used with --whatrequires: it extends the output with packages that require anything provided by the outputted packages.
    • when used with --providers-of=requires: it extends the output with packages that provide anything required by the outputted packages.
    • and it repeats the output extension as long as new packages are being added. it just keeps going. it's committed.
    • the added packages are limited by --available, --installed and --arch options.
  • --security β€” includes content contained in security advisories. πŸ›‘οΈ
  • --srpm β€” after filtering is finished, it uses the packages' corresponding source RPMs for output. also: enables source repositories. so it's doing two things and both of them are on purpose. πŸŽ€
  • --unneeded β€” limits to unneeded installed packages, meaning packages that were installed as dependencies but are no longer needed. this switch lists the packages that are going to be removed after you execute the autoremove command. so like... this is a spoiler for autoremove. 😭
  • --upgrades β€” limits to available packages that provide an upgrade for some already installed package. glow-up season. ⭐
  • --userinstalled β€” limits to packages that are not installed as dependencies or weak dependencies. meaning: limit to packages that were installed at the user request, or indirectly as part of a module profile or comps group. additionally it returns packages with unknown reason β€” yes, even the mysterious ones. the result may be influenced by the "exclude" option in the configuration file. and if you want the exact reason of the installation? use the --queryformat '%{name} %{reason}\n' option. receipts, bestie, always get the receipts. 🧾
  • --whatconflicts=CAPABILITY,... β€” limits to packages that conflict with any of <capabilities>. list option. drama. πŸ’€
  • --whatdepends=CAPABILITY,... β€” limits to packages that require, enhance, recommend, suggest or supplement any of <capabilities>. it's the whole friend group, all five of them. list option. 🫢
  • --whatenhances=CAPABILITY,... β€” limits to packages that enhance any of <capabilities>. list option. also, use --whatdepends if you want to list all depending packages. πŸ’–
  • --whatobsoletes=CAPABILITY,... β€” limits to packages that obsolete any of <capabilities>. list option. out with the old. ✨
  • --whatprovides=CAPABILITY,... β€” limits to packages that provide any of <capabilities>. capabilities specifying a file provide <#file-provides-ref-label> are also matched against file provides. list option. πŸŽ€
  • --whatrecommends=CAPABILITY,... β€” limits to packages that recommend any of <capabilities>. list option. and again: use --whatdepends if you want all depending packages. 🌸
  • --whatrequires=CAPABILITY,... β€” limits to packages that require any of <capabilities>. list option. and once more for the people in the back: use --whatdepends if you want all depending packages. πŸ‘‘
  • --whatsuggests=CAPABILITY,... β€” limits to packages that suggest any of <capabilities>. list option. and yep, --whatdepends for all depending packages. πŸ¦‹
  • --whatsupplements=CAPABILITY,... β€” limits to packages that supplement any of <capabilities>. list option. and finally, one last time, --whatdepends if you want all depending packages. πŸ’œ

okay that's part 1 of the page! everything above is every single option, value, default, warning and list-type in this section β€” nothing skipped, nothing invented, nothing merged. the rest of the page is coming in the next part, so don't go anywhere bestie, we're not done yet. 🫢✨

πŸŽ€ FORMATTING OPTIONS πŸŽ€

okay bestie so this is the part where you decide what actually gets shown about each package. and here's the tea: these are mutually exclusive, meaning at most one can be specified. pick two and the universe simply will not allow it, periodt. βœ‹

and if you give no formatting option at all? then the selected packages just get displayed in "%{full_nevra}" queryformat. default behavior, no thoughts, slay. πŸ’…

  • --conflicts β€” basically --qf "%{conflicts}", except it's deduplicated and sorted per line. ✨
  • --depends β€” basically --qf "%{depends}", except deduplicated and sorted per line.
  • --enhances β€” basically --qf "%{enhances}", except deduplicated and sorted per line.
  • --files β€” basically --qf "%{files}", except deduplicated and sorted per line.
  • --obsoletes β€” basically --qf "%{obsoletes}", except deduplicated and sorted per line.
  • --provides β€” basically --qf "%{provides}", except deduplicated and sorted per line.
  • --recommends β€” basically --qf "%{recommends}", except deduplicated and sorted per line.
  • --requires β€” basically --qf "%{requires}", except deduplicated and sorted per line.
  • --requires-pre β€” basically --qf "%{requires_pre}", except deduplicated and sorted per line.
  • --sourcerpm β€” basically --qf "%{sourcerpm}", except deduplicated and sorted per line.
  • --suggests β€” basically --qf "%{suggests}", except deduplicated and sorted per line.
  • --supplements β€” basically --qf "%{supplements}", except deduplicated and sorted per line.
  • --location β€” basically --qf "%{location}", except deduplicated and sorted per line.
  • -i, --info β€” spill the whole tea β˜• β€” shows detailed information about the package.
  • --changelogs β€” prints the package changelogs. the lore, the history, the drama. πŸ“–
  • --querytags β€” shows you all the available tags you can use with --queryformat. your little menu of options, bestie.
  • --queryformat=<format> β€” this one sets the display format for packages. the <format> string can hold tags (%{<tag>}) which get swapped out for the corresponding attributes of the package. default is "%{full_nevra}". and the <format> string gets expanded and deduplicated for each package. πŸ’–

here's every single tag you can use, no gatekeeping:

  • arch β€” display architecture of the package.
  • buildtime β€” display buildtime of the package in Unix time. ⏰
  • conflicts β€” display capabilities that the package conflicts with. separated by new lines.
  • debug_name β€” display name of debuginfo package of the package.
  • depends β€” display capabilities that the package depends on, enhances, recommends, suggests or supplements. separated by new lines.
  • description β€” display description of the package.
  • downloadsize β€” display download size of the package.
  • enhances β€” display capabilities enhanced by the package. separated by new lines.
  • epoch β€” display epoch of the package.
  • evr β€” display epoch:version-release of the package. epoch 0 is omitted.
  • files β€” show files in the package. separated by new lines.
  • from_repo β€” display id of repository the package is installed from. empty for not installed packages.
  • full_nevra β€” display name-epoch:version-release.arch of the package. even epoch 0 is included. (yes, unlike evr. iconic inconsistency, we love her πŸ’…)
  • group β€” display group of the package. this is not Comps group.
  • location β€” display location of the package.
  • installsize β€” display install size of the package.
  • installtime β€” display install time of the package.
  • license β€” display license of the package.
  • name β€” display name of the package.
  • obsoletes β€” display capabilities obsoleted by the package. separated by new lines.
  • packager β€” display packager of the package.
  • prereq_ignoreinst β€” display safe to remove requires_pre requirements of an installed package. empty for not installed packages. separated by new lines.
  • provides β€” display capabilities provided by the package. separated by new lines.
  • reason β€” display reason why the packages was installed.
  • recommends β€” display capabilities recommended by the package. separated by new lines.
  • regular_requires β€” display capabilities required by the package without its %pre, %post, %preun and %postun requirements. separated by new lines.
  • release β€” display release of the package.
  • repoid β€” display id of repository the package is in.
  • reponame β€” display name of repository the package is in.
  • requires β€” display capabilities required by the package (combines regular_requires and requires_pre).
  • requires_pre β€” for an installed package display capabilities that it depends on to run its %pre, %post, %preun and %postun scripts. for not installed package display just %pre and $post requirements. separated by new lines.
  • source_debug_name β€” display name of debuginfo package for source package of the package.
  • source_name β€” display source RPM name of the package.
  • sourcerpm β€” display source RPM of the package.
  • suggests β€” display capabilities suggested by the package. separated by new lines.
  • summary β€” display summary of the package.
  • supplements β€” display capabilities supplemented by the package. separated by new lines.
  • url β€” display url of the package.
  • vendor β€” display vendor of the package.
  • version β€” display version of the package.

and one more little trick bestie: the <format> string can also contain \n, which gets replaced with a newline character on the output. so you can actually format your output like a civilized person. πŸ¦‹


🌈 EXAMPLES 🌈

okay real talk, here's how it actually looks in the wild:

dnf5 repoquery /etc/koji.conf

list packages which provide the given file. that's it, that's the move. πŸ”₯

dnf5 repoquery *http*

list packages containing the http inside their name. wildcards stay undefeated. ✨

dnf5 repoquery --installed --security

list installed packages included in any security advisories. staying safe out here. πŸ›‘οΈ


πŸ‘€ SEE ALSO πŸ‘€


✍️ Author ✍️

see AUTHORS.md in dnf5 source distribution. 🫢

Contributors to the dnf5 project.


and that's a wrap bestie!! πŸŽ€ this was DNF5-REPOQUERY(8) from the dnf5 source distribution, dated Sep 24, 2026 β€” go forth and query your repos, you absolute icon. πŸ‘‘πŸ’–

πŸ“¦ where this page comes from