У меня есть скрипт, написанный на perl, который собирает информацию о пакетах, которые устанавливаются через порты. К сожалению, похоже, нет функционального и простого способа определить, какая версия порта. Конечно, вы можете использовать это:Информация о версии пакета FreeBSD
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 и т. Д., Но я не хочу, чтобы избежать этого.
Пожалуйста, дайте мне знать, что вы, ребята, можете придумать, поскольку я нахожу это довольно сложно найти информацию.
P.S. Вот некоторая информация:
версия FreeBSD 9.1 Arch: x64 Perl версии: 5.14.2 (amd64-freebsd-нить-мульти)
Если кто-то может добавить тег для портов, которые были бы отлично, так как он еще не существует.
Я предполагаю, что вы имеете в виду использование имени каталога для определения версии, не так ли? Например, в пакете «бла» есть каталог «blah-1.1.1_3» –
Да, это так. Он предполагает, что инструменты 'pkg_ *' правильно выполнили свою работу, но если вы позволите им сделать это неправильно, у вас будет целый ряд других возможных проблем. – Borodin
Да, действительно. Это, конечно, характер зверя. Я должен буду выполнить свой долг и написать некоторые причудливые проверки здравомыслия, чтобы гарантировать, что это не сходит с ума. Спасибо за помощь. :) –