При попытке инсталировать SpamAssassin или amavisd-new с портов выдает ошибку:
p5-Mail-SpamAssassin-3.3.2_2 requires Perl 5.8.8 or later, install lang/perl5.8, lang/perl5.10, lang/perl5.12 or lang/perl5.14 and try again.Уже инсталировал perl5.8.9, perl5.10.1, perl5.12.4 но проблемма остается.
Система: FreeBSD 7.4-RELEASE-p1
> При попытке инсталировать SpamAssassin или amavisd-new с портов выдает ошибку:
> p5-Mail-SpamAssassin-3.3.2_2 requires Perl 5.8.8 or later, install lang/perl5.8, lang/perl5.10,
> lang/perl5.12 or lang/perl5.14 and try again.
> Уже инсталировал perl5.8.9, perl5.10.1, perl5.12.4 но проблемма остается.
> Система: FreeBSD 7.4-RELEASE-p1вероятно неверно производили апгрейд портов и пакетов, нарушили целостность и
теперь у вас каша в системе касательно портов-пакетов.нужно было посмотреть какой perl у вас был установлен изначально, после чего
использовать portupgrade или portmaster для апгрейда портов.
Сейчас нужно посмотреть сколько и какие версии perl в системе, посмотреть
зависимости - что от каких версий зависит, затем удалить все версии perl, ошметки
от них, установить один 5.10 или 5.12, затем все необходимые модули которые
нужны вам для ранее установленных apps на perl и все.
В текущих портах в качестве default perl5.12, но можно использовать и perl5.10
и perl5.8 (если он у вас был 5.8.9, главное > чем 5.8.8)
Если по какой-то причине нужно несколько версий perl'а в системе, следует
использовать переменную USE_PERL5 для сборки Apps, посмотреть можно в:# less /usr/ports/Mk/bsd.perl.mk
Обычно ПЕРЕД переходом с версии perl на другую, следует прочитать:
# less /usr/ports/UPDATING
и
# man perl-after-upgrade
>[оверквотинг удален]
> В текущих портах в качестве default perl5.12, но можно использовать и
> perl5.10
> и perl5.8 (если он у вас был 5.8.9, главное > чем 5.8.8)
> Если по какой-то причине нужно несколько версий perl'а в системе, следует
> использовать переменную USE_PERL5 для сборки Apps, посмотреть можно в:
> # less /usr/ports/Mk/bsd.perl.mk
> Обычно ПЕРЕД переходом с версии perl на другую, следует прочитать:
> # less /usr/ports/UPDATING
> и
> # man perl-after-upgradepkg_info -x perl показал что от него зависят только модули p5-*
Удалил все зависимости:
pkg_delete -x ^p5-
после этого pkg_info -x perl никаких зависимостей не показал.
удалил сам perl.
Установил с портов perl5.12.4И всеравно при инсталяции SpamAssassin выдает
p5-Mail-SpamAssassin-3.3.2_2 requires Perl 5.8.8 or later, install lang/perl5.8, lang/perl5.10, lang/perl5.12 or lang/perl5.14 and try again.
>[оверквотинг удален]
>> # man perl-after-upgrade
> pkg_info -x perl показал что от него зависят только модули p5-*
> Удалил все зависимости:
> pkg_delete -x ^p5-
> после этого pkg_info -x perl никаких зависимостей не показал.
> удалил сам perl.
> Установил с портов perl5.12.4
> И всеравно при инсталяции SpamAssassin выдает
> p5-Mail-SpamAssassin-3.3.2_2 requires Perl 5.8.8 or later, install lang/perl5.8, lang/perl5.10,
> lang/perl5.12 or lang/perl5.14 and try again.выложите на pastbin лог сборки целиком. И еще покажите, что у вас в /etc/make.conf
>[оверквотинг удален]
>> Удалил все зависимости:
>> pkg_delete -x ^p5-
>> после этого pkg_info -x perl никаких зависимостей не показал.
>> удалил сам perl.
>> Установил с портов perl5.12.4
>> И всеравно при инсталяции SpamAssassin выдает
>> p5-Mail-SpamAssassin-3.3.2_2 requires Perl 5.8.8 or later, install lang/perl5.8, lang/perl5.10,
>> lang/perl5.12 or lang/perl5.14 and try again.
> выложите на pastbin лог сборки целиком. И еще покажите, что у вас
> в /etc/make.conf/etc/make.conf
CFLAGS= -O -pipe
NO_PROFILE= true
X11BASE=${LOCALBASE}
# added by use.perl 2011-09-24 17:57:57
PERL_VERSION=5.12.4закоментировал в /usr/ports/mail/p5-Mail-SpamAssassin/Makefile строчку
USE_PERL5_RUN= 5.8.8+
и SpamAssassin заинсталировался
> закоментировал в /usr/ports/mail/p5-Mail-SpamAssassin/Makefile строчку
> USE_PERL5_RUN= 5.8.8+
> и SpamAssassin заинсталировалсяЗабавно ) Я бы написал майнтейнеру
>> закоментировал в /usr/ports/mail/p5-Mail-SpamAssassin/Makefile строчку
>> USE_PERL5_RUN= 5.8.8+
>> и SpamAssassin заинсталировался
> Забавно ) Я бы написал майнтейнеруо чем? о непонимании работы make?
USE_PERL5_RUN= 5.8.8+
означает что для сборки используется perl 5.8.8 и выше.
В остальном - вероятно неверно обновлены порты и возможно не обновлен
/usr/ports/Mk/*
или криво == неверно производится обновление
> Установил с портов perl5.12.4
> И всеравно при инсталяции SpamAssassin выдаетКак уже сказано выше - у вас нарушена целостность базы портов.
Последовательность действий следующая:# cd /usr/ports/ports-mgmt/portmaster
# make install clean
# portmaster --check-depends
# portmaster --check-port-dbdir
# portmaster -s
# portmaster -y --clean-distfiles
>> Установил с портов perl5.12.4
>> И всеравно при инсталяции SpamAssassin выдает
> Как уже сказано выше - у вас нарушена целостность базы портов.
> Последовательность действий следующая:
> # cd /usr/ports/ports-mgmt/portmaster
> # make install clean
> # portmaster --check-depends
> # portmaster --check-port-dbdir
> # portmaster -s
> # portmaster -y --clean-distfilesЯ все старыми провереными методами делаю, обновляю порти cvsup'ом, никаких утилит для автоматического обновления не использую (были когда-то большие проблемы из-за этого). Хотя наверное пора уже еще раз попробовать portmaster.
А насчет целесности портов, то я их полностю удалил (rm -rf /usr/ports), потом обновил cvsup -g -L 2 /etc/supfile. Но это не помогло.
В /etc/supfile:
default release=cvs tag=RELENG_7_4
src-all
ports-all tag=.Я понимаю что неправильно коментировать в /usr/ports/mail/p5-Mail-SpamAssassin/Makefile строчку USE_PERL5_RUN= 5.8.8+, но у меня инсталирован 5.12.4 и в /etc/make.conf есть PERL_VERSION=5.12.4, а порт не исталировался.
> А насчет целесности портов, то я их полностю удалил (rm -rf /usr/ports),
> потом обновил cvsup -g -L 2 /etc/supfile. Но это не помогло.Начнем с того, что порты - это не только дерево портов /usr/ports, но и база портов в /var/db/pkg - именно оттуда берутся актуальные зависимости конкретных установленных портов в зависимости от конкретных опций установки.
Во-вторых, для работы с портами уже давным-давно следует использовать штатный механизм portsnap, а не цвс, который для этих нужд годится еле-еле.
В-третьих, совершенно неправильно и крайне чревато надеяться на принцип четности, и вносить умышленную ошибку, ломая порт, надеясь побороть ошибку неумышленную, из-за неправильно установленных портов.
Сразу предупреждаю, что удалить /var/db/pkg - это будет даже хуже, чем поломать порт. Потому что в системе останется куча мусора, удалить который будет крайне проблематично.