为什么 dnf 包结果列表有这种奇怪的排序?

为什么 dnf 包结果列表有这种奇怪的排序?

这可能是这十年来最无用的问题;然而,它引起了我的兴趣,所以我认为它可能值得分享。

根据联机帮助页,dnf search <something>从最相关到​​最不相关的结果列表进行排序。

在我的 Fedora 23 上,结果dnf search yum几乎按照包名称+描述的长度整齐地排序:

[dr01@linuxbox ~]$ dnf search yum
Last metadata expiration check performed 0:06:14 ago on Fri Jan  8 14:03:49 2016.
================================================================================================ N/S Matched: yum =================================================================================================
yum.noarch : RPM package installer/updater/manager
yum-langpacks.noarch : Langpacks plugin for yum
yum-rhn-plugin.noarch : Spacewalk support for yum
yumdaemon.noarch : DBus daemon for yum package actions
yum-plugin-copr.noarch : Yum plugin to add copr command
yum-updateonboot.noarch : Run yum update on system boot
yum-axelget.noarch : Download accelerator plug-in for Yum
yum-metadata-parser.x86_64 : A fast metadata parser for yum
yumex.noarch : Yum Extender graphical package management tool
yum-plugin-keys.noarch : Yum plugin to deal with signing keys
yum-dellsysid.x86_64 : YUM plugin to retrieve the Dell System ID
yum-plugin-aliases.noarch : Yum plugin to enable aliases filters
yum-utils.noarch : Utilities based around the yum package manager
yumex-dnf.noarch : Yum Extender graphical package management tool
yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues
yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories
yum-plugin-list-data.noarch : Yum plugin to list aggregate package data
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
perl-YUM-RepoQuery.noarch : Query a YUM repository for package information
yum-cron-daily.noarch : Files needed to run yum updates as a daily cron job
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-cron-hourly.noarch : Files needed to run yum updates as an hourly cron job
yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data
yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages
yum-cron-security.noarch : Files needed to run security yum updates as once a day
yum-plugin-puppetverify.noarch : Yum plugin to add puppet checksums to verify data
yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages
yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated
python-yumdaemon.noarch : Python 2 api for communicating with the yum-daemon DBus service
yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories.
python3-yumdaemon.noarch : Python 3 api for communicating with the yum-daemon DBus service
yum-plugin-refresh-updatesd.noarch : Tell yum-updatesd to check for updates when yum exits
dnf-yum.noarch : As a Yum CLI compatibility layer, supplies /usr/bin/yum redirecting to DNF.
yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating
yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages
yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages
yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates
fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits
yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on
yum-NetworkManager-dispatcher.noarch : NetworkManager script which tells yum to check its cache on network change
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal
yum-cron.noarch : RPM package installer/updater/manager cron service
yum-updatesd.noarch : Update notification daemon
yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos
mysql-community-release.noarch : MySQL repository configuration for yum
system-config-repo.noarch : Administrate a single yum repository file
mash.noarch : Koji buildsystem to yum repository converter
percona-release.noarch : Package to install Percona GPG key and YUM repo
grinder.noarch : A tool for synchronizing content from yum repositories
repoview.noarch : Creates a set of static HTML pages in a yum repository
fedrepos.noarch : Update fedora yum repositories on a host to use a single source
fedora-upgrade.noarch : Upgrade Fedora to next version using yum upgrade (unofficial tool)
dnf.noarch : Package manager forked from Yum, using libsolv as a dependency resolver

结果dnf search yum-plugin按包名长度排序:

[dr01@linuxbox ~]$ dnf search yum-plugin    
Last metadata expiration check performed 0:15:02 ago on Fri Jan  8 14:03:49 2016.
============================================================================================= N/S Matched: yum-plugin =============================================================================================
yum-plugin-ps.noarch : Yum plugin to look at processes, with respect to packages
yum-plugin-ovl.noarch : Yum plugin to work around overlayfs issues
yum-plugin-copr.noarch : Yum plugin to add copr command
yum-plugin-keys.noarch : Yum plugin to deal with signing keys
yum-plugin-local.noarch : Yum plugin to automatically manage a local repo. of downloaded packages
yum-plugin-verify.noarch : Yum plugin to add verify command, and options
yum-plugin-aliases.noarch : Yum plugin to enable aliases filters
yum-plugin-tmprepo.noarch : Yum plugin to add temporary repositories
yum-plugin-tsflags.noarch : Yum plugin to add tsflags by a commandline option
yum-plugin-changelog.noarch : Yum plugin for viewing package changelogs before/after updating
yum-plugin-list-data.noarch : Yum plugin to list aggregate package data
yum-plugin-merge-conf.noarch : Yum plugin to merge configuration changes when installing packages
yum-plugin-priorities.noarch : plugin to give priorities to packages from different repos
yum-plugin-filter-data.noarch : Yum plugin to list filter based on package data
yum-plugin-fs-snapshot.noarch : Yum plugin to automatically snapshot your filesystems during updates
yum-plugin-protectbase.noarch : Yum plugin to protect packages from certain repositories.
yum-plugin-show-leaves.noarch : Yum plugin which shows newly installed leaf packages
yum-plugin-versionlock.noarch : Yum plugin to lock specified packages from being updated
yum-plugin-puppetverify.noarch : Yum plugin to add puppet checksums to verify data
yum-plugin-fastestmirror.noarch : Yum plugin which chooses fastest repository from a mirrorlist
yum-plugin-rpm-warm-cache.noarch : Yum plugin to access the rpmdb files early to warm up access to the db
yum-plugin-upgrade-helper.noarch : Yum plugin to help upgrades to the next distribution version
yum-plugin-refresh-updatesd.noarch : Tell yum-updatesd to check for updates when yum exits
yum-plugin-remove-with-leaves.noarch : Yum plugin to remove dependencies which are no longer used because of a removal
fusioninventory-agent-yum-plugin.noarch : Ask FusionInventory agent to send an inventory when yum exits
yum-plugin-auto-update-debug-info.noarch : Yum plugin to enable automatic updates to installed debuginfo packages
yum-plugin-post-transaction-actions.noarch : Yum plugin to run arbitrary commands when certain pkgs are acted on

这个有趣的故障可能是什么原因造成的?

相关内容