利用 debtags 发现类似软件

问题:您正在运行您最喜欢的应用程序,但您意识到您需要的功能尚未实现。您可以自己编写此功能,但也许有类似的应用程序已经为您实现了它。

解决方案:有人建议您查看 debtags,它是 Debian 衍生发行版的一项功能,允许用户根据与大量 DEB 软件包关联的标签来发现类似的软件包。 让我们利用 debtags 为我们最喜欢的命令行 MP3 播放器 mpg123 寻找替代品。

首先,我们必须更新 debtags 数据库。

$ sudo debtags update

然后,我们可以开始搜索!

$ debtags related mpg123 -d 1
madplay - MPEG audio player in fixed point
mpg321 - mpg123 clone that doesn't use floating point

从输出中,您可以看到似乎有一个合适的替代品称为 mpg321。 多么好! “-d”选项指定结果的相关性。 默认值为 0,但值越高,结果的相关性越低。 在运行查询时请记住这一点。 我发现的最佳解决方案是从 0 开始,然后逐步增加,直到您的查询返回一些结果。 值 1 并不适用于所有软件包搜索——我们可以编写一个脚本,但是,我又太懒了。

也可以查看与应用程序关联的标签。
让我们看看分配给 mpg123 的哪些类型的标签帮助 debtags 找到了相关软件。

$ debtags tag ls mpg123
interface::commandline
role::program
sound::player
use::playing
works-with::audio
works-with-format::mp3

现在,相关的软件替代品应该具有相似的标签,对吗?

$ debtags tag ls mpg321
interface::commandline
role::program
scope::utility
sound::player
use::playing
works-with::audio
works-with-format::mp3

这正是 debtags 如何使用“-d”选项工作的。 相关性是根据可能的替代应用程序中标签匹配的频率来确定的。 我们也可以仅根据某些标签搜索软件。 让我们扩展我们的思维,看看所有可用的声音播放器

$ debtags search sound::player
adplay - console-based OPL2 audio player
akode - (short description not available)
allegro-examples - example programs and demo tools for the Allegro library
alsaplayer - (short description not available)
alsaplayer-alsa - PCM player designed for ALSA (ALSA output module)
alsaplayer-common - PCM player designed for ALSA (common files)
alsaplayer-daemon - PCM player designed for ALSA (non-interactive version)
...[snipped]...

查看所有可以搜索的标签

$ debtags tagcat
Facet: accessibility
Description: Accessibility Support
 Accessibility Support

Tag: accessibility::TODO
Description: Need an extra tag
 Need an extra tag
...[snipped]...

转储整个软件包到标签的数据库映射

$ debtags cat
2vcard: implemented-in::perl, role::program, use::converting
3dchess: game::board, game::board:chess, implemented-in::c, ...
3ddesktop: game::toys, interface::3d, role::program, ...
44bsd-rdist: admin::file-distribution, interface::commandline, ...
4g8: admin::monitoring, protocol::ip, protocol::tcp, ...
6tunnel: interface::daemon, network::server, network::vpn, ...
855resolution: admin::configuring, hardware::video, ...
...[snipped]...

我鼓励您阅读手册页以获取更高级的 debtags 功能。 甚至还有一些选项可以添加您自己的自定义标签,甚至可以为具有不正确或过时信息的软件包提交标签。 debtags 是一个很棒的实用程序,所以玩得开心! 如果您有其他问题或提示,请在下方发表评论 :-)

加载 Disqus 评论