URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 40615
[ Назад ]

Исходное сообщение
"Системный Perl"

Отправлено A Clockwork Orange , 16-Фев-04 14:28 
Как можно пересобрать системный перла с добавив новую опцию
-Dusethreads=y
Из портов ставить новый нежелаетльно.

Содержание

Сообщения в этом обсуждении
"Системный Perl"
Отправлено A Clockwork Orange , 16-Фев-04 15:41 
Lavr не подскажешь?

"Системный Perl"
Отправлено lavr , 16-Фев-04 15:48 
>Lavr не подскажешь?

системный нежелательно НИ В ОДНОМ *nix'е трогать или менять.
Либо использовать готовые бинарные пакеты: Linux, Solaris...,
в *BSD лучше порты, либо для любого юникса - руками с PREFIX=/usr/local
или другой удобный или устоявшийся префикс.

Прим: в 5'ой ветке вроде perl и вовсе не является частью системы.


"Системный Perl"
Отправлено A Clockwork Orange , 16-Фев-04 15:49 
Так можно в 5 или нет?

"Системный Perl"
Отправлено lavr , 16-Фев-04 16:20 
>Так можно в 5 или нет?

еще раз:

- либо собрать из портов и переключиться на новый, для FreeBSD это будет
фиолетово: системный или новый

- либо собрать руками с нужным префиксом и тогда будет ДВА перла, в
этом случае в перловых скриптах, вызов системного с одним путем, вызов
нового с другим.


"Системный Perl"
Отправлено A Clockwork Orange , 16-Фев-04 16:22 
1 Портовый собрать проблемно, придется переставить кучу модулей

2 А как переставить сисемная в этом и вопрос?


"Системный Perl"
Отправлено lavr , 16-Фев-04 16:42 
>1 Портовый собрать проблемно, придется переставить кучу модулей

элементарно - для этого ВСЕГДА регистрировать устанавливаемые порты-пакеты
и по DEPENDENCE все модули собираются по цепочке тока в путь, причем
зачастую достаточно сборку нескольких портов БЕЗ make install, так
как модули вытягиваются и ставятся(make install по зависимости)
:)

>2 А как переставить сисемная в этом и вопрос?

найти в sources Makefile, посмотреть версию perl'а и изучить на предмет
глюков сборки этой версии с тредами, если все ok - поправить Makefile
и пересобрать perl из sources.


"Системный Perl"
Отправлено A Clockwork Orange , 16-Фев-04 16:49 
что есть
для этого ВСЕГДА регистрировать устанавливаемые порты-пакеты

"Системный Perl"
Отправлено lavr , 16-Фев-04 17:21 
>что есть
> для этого ВСЕГДА регистрировать устанавливаемые порты-пакеты

ls -la /var/db/pkg | less

grep FORCE /etc/make.conf
...
FORCE_PKG_REGISTER=    YES
...


"Системный Perl"
Отправлено A Clockwork Orange , 16-Фев-04 17:39 
Вот черт, я думал по умолчанию они регистрируются а они
www# grep FORCE /etc/defaults/make.conf
#FORCE_PKG_REGISTER=    YES
www#

Когда накладываешь новый порт на старый если не хочешь деинстолировать старый мо тожно такой штукой переписать регистрацию.

Значит по-умолчанию эта штука должна работать???!!!! где я не прав?


"Системный Perl"
Отправлено lavr , 16-Фев-04 18:01 
>Вот черт, я думал по умолчанию они регистрируются а они
>www# grep FORCE /etc/defaults/make.conf
>#FORCE_PKG_REGISTER=    YES
>www#
>
>Когда накладываешь новый порт на старый если не хочешь деинстолировать старый мо
>тожно такой штукой переписать регистрацию.
>
>Значит по-умолчанию эта штука должна работать???!!!! где я не прав?

она не переписывается, а регистрируется новый, ну или если порт тот же самый, то наверное переписывается, sorry, голова не варит...

А имелось ввиду вот что: ты смотришь depend по установленным модулям или
портам, а например находишь что для сборки amavisd-new требуется предварительно установить такие-то модули перла - так вот если ПРОСТО
пересобрать amavisd-new то модули должны пересобраться, ну или вычистить
их из базы - тогда они точно будут переустановлены.
В результате, достаточно в нескольких таких портах сделать make и
модули заново будут собраны и установлены, ну а отдельные модули пересобрать самостоятельно.
Что-то мне подсказывает что можно гораздо проще пересобрать, но голова
не варит, читать-вспоминать-искать напряжно.


"Системный Perl"
Отправлено ChiP , 16-Фев-04 21:34 
>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


"Системный Perl"
Отправлено A Clockwork Orange , 17-Фев-04 08:42 
Не подойдет. В том то и вопрос
Придется переставлять модули перла. А их очень много.

"Системный Perl"
Отправлено lavr , 17-Фев-04 12:20 
>Не подойдет. В том то и вопрос
>Придется переставлять модули перла. А их очень много.

ты руками перл когда-нить ставил???

А ведь BSD думаю оттуда взяла идеологию портов: cpan - хоть туеву хучу
модулей ставь!!!
Здесь уже об этом расписывалось.


"Системный Perl"
Отправлено A Clockwork Orange , 17-Фев-04 12:30 
Не ставил перл руками.
Не, ну чего я врать что ли буду.
Ставишь из портов перл
Делаешь use.perl port
Все большинство модулей не работает что стояли раньше. Ругаются что нет в /perl5.8/ ....pm
На фига мне сочинять то

"Системный Perl"
Отправлено chip , 17-Фев-04 16:20 
>Не ставил перл руками.
>Не, ну чего я врать что ли буду.
>Ставишь из портов перл
>Делаешь 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.
~ %


"Системный Perl"
Отправлено A Clockwork Orange , 17-Фев-04 18:16 
>>Не ставил перл руками.
>>Не, ну чего я врать что ли буду.
>>Ставишь из портов перл
>>Делаешь 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?
Правильно ли я понял, что если я добавлю пути к старому перлу, то модули не придется переустанавливать?


"Системный Perl"
Отправлено lavr , 17-Фев-04 16:26 
>Не ставил перл руками.
>Не, ну чего я врать что ли буду.
>Ставишь из портов перл
>Делаешь use.perl port
>Все большинство модулей не работает что стояли раньше. Ругаются что нет в
>/perl5.8/ ....pm
>На фига мне сочинять то

поэтому и не понял!!!
попробуй сам (без портов) собрать perl из sources, например с PREFIX=/var/local (предварительно mkdir /var/local[bin/sbin/share])
потом сделай скрипт:

--------------------- /usr/local/bin/cpan -----------------------------
#!/var/local/bin/perl

eval 'exec /usr/bin/perl  -S $0 ${1+"$@"}'
    if 0; # not running under some shell

use 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


"Системный Perl"
Отправлено A Clockwork Orange , 17-Фев-04 18:17 
Спасибо за подробное разъяснение Lavr.

В любом случае после установки нового перла ставить модули.

А можно ли поставить новый перл и обойтись без переустановки модулей?


"Системный Perl"
Отправлено lavr , 17-Фев-04 18:34 
>Спасибо за подробное разъяснение Lavr.
>
>В любом случае после установки нового перла ставить модули.
>
>А можно ли поставить новый перл и обойтись без переустановки модулей?

если разных версий, боюсь что нет, релизы 5.0x, 5.6.x и 5.8.x сильно отличаются. Это скорей к перловщикам вопрос http://www.perl.ru/
- мб на их форуме.


"Системный Perl"
Отправлено lavr , 17-Фев-04 18:42 
>>Спасибо за подробное разъяснение 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>


"Системный Perl"
Отправлено A Clockwork Orange , 17-Фев-04 19:53 
Спасибо Лавр за исчерпывающий ответ, то что надо

Еще бы теперь решить вопрос с squierrelmail и MIME...