Добрый день, коллеги. Напоролся на странное поведение утилиты pkgdb -Ff, пятый день бъюсь не знаю куда копать.
Итак, FreeBSD 8.3-RELEASE. Обновил perl5 до 5.16, начал обновлять зависящие от него пакеты. В процессе система попросила запустить pkgdb -Ff, мотивируя поврежденной базой.
Запустил, отрабатывает, сообщает, например:
Stale dependency: otrs-3.1.13 -> p5-Encode-Locale-1.02 (converters/p5-Encode-Locale):
p5-Encode-Detect-1.01 (score:66%) ? ([y]es/[n]o/[a]ll) [no]
Это, естественно, бред, я говорю нет, утилита предлагает установить недостающий пакет, я соглашаюсь и она начинает устанавливать perl5-16.3 (!) - после чего честно устанавливает требуемый пакет, сообщает fixed, переходит к следующей проблеме Stale dependency, алгоритм повторяется - ставится заново перл, потом только пакет. Чувствую, что то здесь не так!
В общем - что делать, почему утилита pkgdb не понимает что перл стоит и с ним все в порядке? Вот вывод:
/usr/ports# pkg info perl5
perl5-5.16.3_9
Name : perl5
Version : 5.16.3_9
Installed on : Thu Apr 10 10:16:32 EEST 2014
<skip>
Вот сам перл:
/usr/ports# perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for i386-freebsd-thread-multi-64int
Copyright 1987-2012, Larry Wall
<skip>
Ну, и собственно, все пакеты от него зависящие видят его правильно, и работают как надо.