Как можно пересобрать системный перла с добавив новую опцию
-Dusethreads=y
Из портов ставить новый нежелаетльно.
Lavr не подскажешь?
>Lavr не подскажешь?системный нежелательно НИ В ОДНОМ *nix'е трогать или менять.
Либо использовать готовые бинарные пакеты: Linux, Solaris...,
в *BSD лучше порты, либо для любого юникса - руками с PREFIX=/usr/local
или другой удобный или устоявшийся префикс.Прим: в 5'ой ветке вроде perl и вовсе не является частью системы.
Так можно в 5 или нет?
>Так можно в 5 или нет?еще раз:
- либо собрать из портов и переключиться на новый, для FreeBSD это будет
фиолетово: системный или новый- либо собрать руками с нужным префиксом и тогда будет ДВА перла, в
этом случае в перловых скриптах, вызов системного с одним путем, вызов
нового с другим.
1 Портовый собрать проблемно, придется переставить кучу модулей2 А как переставить сисемная в этом и вопрос?
>1 Портовый собрать проблемно, придется переставить кучу модулейэлементарно - для этого ВСЕГДА регистрировать устанавливаемые порты-пакеты
и по DEPENDENCE все модули собираются по цепочке тока в путь, причем
зачастую достаточно сборку нескольких портов БЕЗ make install, так
как модули вытягиваются и ставятся(make install по зависимости)
:)>2 А как переставить сисемная в этом и вопрос?
найти в sources Makefile, посмотреть версию perl'а и изучить на предмет
глюков сборки этой версии с тредами, если все ok - поправить Makefile
и пересобрать perl из sources.
что есть
для этого ВСЕГДА регистрировать устанавливаемые порты-пакеты
>что есть
> для этого ВСЕГДА регистрировать устанавливаемые порты-пакетыls -la /var/db/pkg | less
grep FORCE /etc/make.conf
...
FORCE_PKG_REGISTER= YES
...
Вот черт, я думал по умолчанию они регистрируются а они
www# grep FORCE /etc/defaults/make.conf
#FORCE_PKG_REGISTER= YES
www#Когда накладываешь новый порт на старый если не хочешь деинстолировать старый мо тожно такой штукой переписать регистрацию.
Значит по-умолчанию эта штука должна работать???!!!! где я не прав?
>Вот черт, я думал по умолчанию они регистрируются а они
>www# grep FORCE /etc/defaults/make.conf
>#FORCE_PKG_REGISTER= YES
>www#
>
>Когда накладываешь новый порт на старый если не хочешь деинстолировать старый мо
>тожно такой штукой переписать регистрацию.
>
>Значит по-умолчанию эта штука должна работать???!!!! где я не прав?она не переписывается, а регистрируется новый, ну или если порт тот же самый, то наверное переписывается, sorry, голова не варит...
А имелось ввиду вот что: ты смотришь depend по установленным модулям или
портам, а например находишь что для сборки amavisd-new требуется предварительно установить такие-то модули перла - так вот если ПРОСТО
пересобрать amavisd-new то модули должны пересобраться, ну или вычистить
их из базы - тогда они точно будут переустановлены.
В результате, достаточно в нескольких таких портах сделать make и
модули заново будут собраны и установлены, ну а отдельные модули пересобрать самостоятельно.
Что-то мне подсказывает что можно гораздо проще пересобрать, но голова
не варит, читать-вспоминать-искать напряжно.
>1 Портовый собрать проблемно, придется переставить кучу модулей
>
>2 А как переставить сисемная в этом и вопрос?cd /usr/ports/lang/perl5.8/ &&
make install clean &&
use.perl portдля возвращения
use.perl systemне подойдет ?!
ps: cat /usr/ports/lang/perl5.8/pkg-message
Не подойдет. В том то и вопрос
Придется переставлять модули перла. А их очень много.
>Не подойдет. В том то и вопрос
>Придется переставлять модули перла. А их очень много.ты руками перл когда-нить ставил???
А ведь BSD думаю оттуда взяла идеологию портов: cpan - хоть туеву хучу
модулей ставь!!!
Здесь уже об этом расписывалось.
Не ставил перл руками.
Не, ну чего я врать что ли буду.
Ставишь из портов перл
Делаешь use.perl port
Все большинство модулей не работает что стояли раньше. Ругаются что нет в /perl5.8/ ....pm
На фига мне сочинять то
>Не ставил перл руками.
>Не, ну чего я врать что ли буду.
>Ставишь из портов перл
>Делаешь use.perl port
>Все большинство модулей не работает что стояли раньше. Ругаются что нет в
>/perl5.8/ ....pmза пути отвечает @INC добавь просто к нему необходимые пути:
~ % perl -e 'print @INC, "\n"'
/usr/local/lib/perl5/site_perl/5.6.1/mach/usr/local/lib/perl5/site_perl/5.6.1/usr/local/lib/perl5/site_perl/usr/local/lib/perl5/5.6.1/BSDPAN/usr/local/lib/perl5/5.6.1/mach/usr/local/lib/perl5/5.6.1.
~ %
>>Не ставил перл руками.
>>Не, ну чего я врать что ли буду.
>>Ставишь из портов перл
>>Делаешь use.perl port
>>Все большинство модулей не работает что стояли раньше. Ругаются что нет в
>>/perl5.8/ ....pm
>
>за пути отвечает @INC добавь просто к нему необходимые пути:
>~ % perl -e 'print @INC, "\n"'
>/usr/local/lib/perl5/site_perl/5.6.1/mach/usr/local/lib/perl5/site_perl/5.6.1/usr/local/lib/perl5/site_perl/usr/local/lib/perl5/5.6.1/BSDPAN/usr/local/lib/perl5/5.6.1/mach/usr/local/lib/perl5/5.6.1.
>~ %
Да да да именно где это находится @INC?
Правильно ли я понял, что если я добавлю пути к старому перлу, то модули не придется переустанавливать?
>Не ставил перл руками.
>Не, ну чего я врать что ли буду.
>Ставишь из портов перл
>Делаешь use.perl port
>Все большинство модулей не работает что стояли раньше. Ругаются что нет в
>/perl5.8/ ....pm
>На фига мне сочинять топоэтому и не понял!!!
попробуй сам (без портов) собрать perl из sources, например с PREFIX=/var/local (предварительно mkdir /var/local[bin/sbin/share])
потом сделай скрипт:--------------------- /usr/local/bin/cpan -----------------------------
#!/var/local/bin/perleval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shelluse CPAN;
shell;
-----------------------------------------------------------------------и после установки perl'а c PREFIX=/var/local, запусти верхний скрипт
и увидишь-поймешь как скачиваются и ставятся модули любого кол-ва.
Правишь Config.pm или свой MyConfig.pm в котором задаешь ближайшее
к себе зеркало CPAN, например:'urllist' => [q[ftp://ftp.chg.ru/pub/lang/perl/CPAN/],q[ftp://ftp.aha.ru/pub/
CPAN/], q[ftp://ftp.sai.msu.su/pub/lang/perl/CPAN/]],и начинаешь ставить модули. Попробуй - понравится :)
Верхний скрипт просто избавит тебя от некоторой ручной работы, сам
сконфигуришь, настроишь, затем начнешь ставить модули:[alone]~ > cpan
We have to reconfigure CPAN.pm due to following uninitialized parameters:cpan_home, keep_source_where, build_dir, build_cache, scan_cache, index_expire, gzip, tar, unzip, make, pager, makepl_arg, make_arg, make_install_arg, urllist, inhibit_startup_message, ftp_proxy, http_proxy, no_proxy, prerequisites_policy, cache_metadata
/usr/local/lib/perl5/5.8.0/CPAN/Config.pm initialized.
CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
found on CPAN are easily accessible with the CPAN.pm module. If you
want to use CPAN.pm, you have to configure it properly.If you do not want to enter a dialog now, you can answer 'no' to this
question and I'll try to autoconfigure. (Note: you can revisit this
dialog anytime later by typing 'o conf init' at the cpan prompt.)Are you ready for manual configuration? [yes]
и понеслась...
Не понравится или не поймешь - свободно снесешь /var/local
Спасибо за подробное разъяснение Lavr.В любом случае после установки нового перла ставить модули.
А можно ли поставить новый перл и обойтись без переустановки модулей?
>Спасибо за подробное разъяснение Lavr.
>
>В любом случае после установки нового перла ставить модули.
>
>А можно ли поставить новый перл и обойтись без переустановки модулей?если разных версий, боюсь что нет, релизы 5.0x, 5.6.x и 5.8.x сильно отличаются. Это скорей к перловщикам вопрос http://www.perl.ru/
- мб на их форуме.
>>Спасибо за подробное разъяснение Lavr.
>>
>>В любом случае после установки нового перла ставить модули.
>>
>>А можно ли поставить новый перл и обойтись без переустановки модулей?
>
>если разных версий, боюсь что нет, релизы 5.0x, 5.6.x и 5.8.x сильно
>отличаются. Это скорей к перловщикам вопрос http://www.perl.ru/
>- мб на их форуме.цитата:
<quote>
модули для разных версий perl'а лежат в разных
каталогах.
для 5.6.x путь к модулям от 5.00503 включен в
@INC, и потому
модули от 5.00503 могут пользоваться в 5.6.x.для 5.8.0 модули от старых версий бинарно не
совместимы - и в @INC, соответственно, их никто
не добавляет.
</quote>
Спасибо Лавр за исчерпывающий ответ, то что надоЕще бы теперь решить вопрос с squierrelmail и MIME...