我有一个用 perl 编写的脚本,它收集有关通过端口安装的软件包的信息。不幸的是,似乎没有一种功能性、简单的方法来确定端口的版本。当然,你可以使用这个:
pkg_version -v
这将向您显示所有包、与其状态相关的符号(需要更新、成功移植等)以及它的版本。
由于这是在脚本中,我真的不想这样做:
my $blah = "pkg_version -v | grep -vE '(up-to-date|succeeds)'|awk '{print \$1}'";
# Then make a var and run it through with backticks.
这会给我一个所有包的列表,让我把它变成一个数组,然后用它做一些魔法。我想做的是这只是弄清楚包的版本是什么,而提供了包的名称。
同样,我可以使用管道、awk 等来执行此操作,但如果可以避免,我不想这样做。
请让我知道你们能想出什么,因为我发现这很难找到相关信息。
PS这里有一些信息:
FreeBSD 版本:9.1 Arch:x64 Perl 版本:5.14.2 (amd64-freebsd-thread-multi)
如果有人可以为端口添加标签,那就太好了,因为它还不存在。