LIBDNF5-LOCAL(8)
π LIBDNF5-LOCAL π
ok so you're reading LIBDNF5-LOCAL(8), the dnf5 manual page for the local plugin, and honestly? it's giving "quietly essential" β¨ let's get into it bestie
π NAME π
libdnf5-local β Local Plugin. and that's the whole name, short and iconic π
πΈ DESCRIPTION πΈ
ok picture this: after each and every libdnf5 transaction, this plugin copies all the downloaded packages over to local repositories on the filesystem and then generates the repository metadata. every time. no skips. π«Ά
It creates two repositories:
_dnf_localβ for packages from repositories withpkg_gpgcheckenabled. Thepkg_gpgchecksetting is inherited from the main configuration. This repository doesn't specify anygpgkeyat all β it just assumes all the required keys were already imported. trust fall energy π_dnf_local_nogpgcheckβ for packages from repositories withpkg_gpgcheckdisabled. This repository haspkg_gpgcheckset tofalse.
Lowkey important detail: each repository is only created when there are actually cached packages in it. empty vibes = no repo, periodt π«
Both repositories are configured with these options, fr fr:
skip_if_unavailable = true
metadata_expire = 0
and the cost situation is very much a hierarchy: the _dnf_local repository has cost = 500 and the _dnf_local_nogpgcheck repository has cost = 501, so the gpgcheck-enabled repository is preferred when both contain the same package. main character repo behavior π
β οΈ to generate the metadata, createrepo_c is required. not a suggestion, it's a whole requirement bestie π§
β¨ CONFIGURATION β¨
The plugin configuration lives in /etc/dnf/libdnf5-plugins/local.conf. The minimal content of the conf file should contain main and createrepo sections. that's the floor, not the ceiling π
π¦ The main section π¦
It requires:
namestring<#string-label>β the plugin's name islocal.enabledβ whether or where the plugin is enabled:true,false,host-only,installroot-only.- For
host-onlythe plugin will run only on transactions in the default installroot/. - For
installroot-onlythe plugin will run only on transactions in installroots different from/.
- For
It can also contain:
repodirstring<#string-label>β path where the local repository is located. By default it is in persistdir<#persistdir-options-label>in theplugins/localsubdirectory.repodir_nogpgcheckstring<#string-label>β path where the local repository for packages from repos withpkg_gpgcheckdisabled is located. By default it is in persistdir<#persistdir-options-label>in theplugins/local-nogpgchecksubdirectory.
π The createrepo section π
It requires:
enabledboolean<#boolean-label>β whether running createrepo to generate repodata is enabled:trueorfalse.
Additionally it can contain:
cachedirstring<#string-label>β if you want to speed up createrepo with the--cachediroption. Not used by default.quietboolean<#boolean-label>β whether to run createrepo with the--quietoption. On by default.verboseboolean<#boolean-label>β whether to run createrepo with the--verboseoption. Off by default.
π Author π
See AUTHORS.md in dnf5 source distribution. go give them a follow, they ate π«Ά
π Copyright π
Contributors to the dnf5 project. legends, all of them π
that's the whole page bestie β this very manual is LIBDNF5-LOCAL(8) from the dnf5 source/version, dated Oct 17, 2026, and honestly? iconic of it π
πβ¨
π¦ where this page comes from
- arch rolling: dnf5 5.4.6.0-2 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms