利用 debtags 发现类似软件
发表于 2009年6月10日
问题:您正在运行您最喜欢的应用程序,但您意识到您需要的功能尚未实现。您可以自己编写此功能,但也许有类似的应用程序已经为您实现了它。
解决方案:有人建议您查看 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 是一个很棒的实用程序,所以玩得开心! 如果您有其他问题或提示,请在下方发表评论 :-)