Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Perl в FreeBSD: как обновить через порты?

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

mymuss



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Привет!
 
Столкнулся с проблемой: в FreeBSD 4.x по умолчанию устанавливается Perl 5.005_03. Если обновить его через порты, он предлагает запустить маленький скрипт use.perl port который меняет ссылки на бинарники и пути к man'ам на новые (а use.perl system обратно).
 
Вопрос: а как сделать чтобы уже установленные модули также работали под новым перлом (не переустанавливая сами модули)?
 
FreeBSD 4.6.2-STABLE, Perl 5.005_03, хочу Perl 5.8.

Всего записей: 709 | Зарегистр. 13-04-2003 | Отправлено: 17:53 11-05-2003 | Исправлено: lynx, 00:12 20-12-2004
lynx



Advanced lynx
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mymuss
 

Цитата:
 он предлагает запустить маленький скрипт use.perl port который меняет ссылки на бинарники и пути к man'ам на новые  

 
Можно залесть в скрипт и поменять пути на нужные.
 
А проще - скачать с оффсайта дистрибутив, сконфигурить, как хочется и поставить.
 
Хотя, проверь еще раз, я не ставила 5.8 поверх 5.6, но может он просто будет как второй Перл, не обновляя первый, а просто еще один будет? Может, потому и пути разные?
 

Всего записей: 11712 | Зарегистр. 08-05-2001 | Отправлено: 20:28 11-05-2003
mymuss



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
lynx

Цитата:
Можно залесть в скрипт и поменять пути на нужные.  

Что конкретно менять и на что?
И вообще, можешь себе представить этот объем работы?
 

Цитата:
А проще - скачать с оффсайта дистрибутив, сконфигурить, как хочется и поставить.

Именно так и делаю.
(Просто интересно: если пишу:
Цитата:
обновить его через порты
то как еще я мог бы его ставить?)
 

Цитата:
я не ставила 5.8 поверх 5.6, но может он просто будет как второй Перл

Проблема не конкретно в версии 5.0/5.6/5.8, а в том, что при установке из портов он действительно ставится как второй. Я же и задаю вопрос поэтому.
(А старый мне вообще не нужен...)

Всего записей: 709 | Зарегистр. 13-04-2003 | Отправлено: 00:17 12-05-2003
Khan



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Про принципы системы портов я рассказывать не буду, но если не понятно, спрашивай
Дело в том, что make в портах имеет много целей. Т. е. make install - только одна из них. На предмет других целей смотри /usr/ports/Mk/bsd.port.mk. Тебе вместо make install нужно сказать:

Код:
 
make fetch
make extract
make patch
 

Первой командой ты получишь исходники нужного тебе порта, второй - распакуешь в директорию work, а третьей наложишь прилагающиеся патчи. После этого иди в каталог ${PERL_PORT_DIR}work/perl-${PERL_VERSION} и скажи perldoc INSTALL и попробуй поискать слово otherlibdirs. Прочитаешь - поймёшь. Далее в каталоге ${PERL_PORT_DIR} в Makefile просто добавь нужную строку. Какую и в каком месте - пусть будет небольним домашним заданием для тебя, если внимательно проделаешь всё предыдущее - это труда не составит . Потом скажи make install. После того как сажешь use.perl port скажи perl -e 'print "@INC\n"' и ...  
 
P.S. Не сочти за снобизм мой ответ, просто до него я и сам не знал как это сделать. Не было нужды. А понадобилось - сделал

Всего записей: 38 | Зарегистр. 28-04-2002 | Отправлено: 02:01 12-05-2003
mymuss



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Khan
Спасибо за грамотный ответ по существу! Все вроде получилось.
 
Еще маленький вопрос: я понял ты уже раньше такое делал? Не было граблей? (Ведь 5.8 по сравнению с 5.0 перетерпел очень существенные изменения, особенно, что касается поддержки unicode.)
 

Цитата:
 
  Compiled at May 12 2003 01:21:00
  @INC:
    /usr/local/lib/perl5/site_perl/5.8.0/mach
    /usr/local/lib/perl5/site_perl/5.8.0
    /usr/local/lib/perl5/site_perl
    /usr/local/lib/perl5/5.8.0/BSDPAN
    /usr/local/lib/perl5/5.8.0/mach
    /usr/local/lib/perl5/5.8.0
    /usr/libdata/perl/5.00503/mach
    /usr/libdata/perl/5.00503
    /usr/local/lib/perl5/site_perl/5.005/i386-freebsd
    /usr/local/lib/perl5/site_perl/5.005/i386-freebsd
    /usr/local/lib/perl5/site_perl/5.005
    .
 


Всего записей: 709 | Зарегистр. 13-04-2003 | Отправлено: 02:51 12-05-2003 | Исправлено: mymuss, 02:52 12-05-2003
Khan



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ты не понял Я это делал в первый раз
Я обычно сразу компилю новый перл, так как в основном программлю под перл. И соотв. модули из портов у меня ставятся в директорию с новым перлом (см. /etc/make.conf). А основная грабля у меня была такая - новый перл при всяком удобном и неудобном случае ругался на переменные локали, уж не помню как конкретно - пофиксил уже, и отвалились много скриптов в /etc/periodic. А дело было в чём - выставлялась у меня переменная LANG=ru.KOI8-R. Ну и становилась у меня система русской: пишет по русски, читает по русски (это всё хорошо) и что самое неприятное - она ещё и разговаривать стала со мной по русски. Т. е. маны по русски, собщения по русски и пр. неприятные весчи. Я, конечно, русский, и Россию люблю. Но не до такой же степени, чтобы ходить в ушанке и с Юнихом по русски общаться. Ладно, думаю, буржуйская железка, будешь ты у меня и Россию любить и со мной на своём родном наречии разговаривать. Лезу по самое нехочу в маны, только ноги торчат, выкапываю переменную LC_MESSAGES и ничтоже сумняшеся сталю её в en. Всё вроде хорошо, мся (Midnight Commander) по своему залопотал, маны англицкие пошли. А так как дело было ночью (ну прям как сейчас то я с чувством выполненного долга лёг спать. На утро обнаружил - перлу не по душе мои лингвистические извращения... В общем суть такова - В BSD нет локали en, а есть en_US.ISO8859-1 или иже с ним. После соответствующей правки перл угомонлся и больше не выступал. И ещё - если ты обратишь внимание, когда скажешь perldoc что-нибудь (ну хоть бы и perl) - все перловые маны у тебя от старого перла. А спасёт тебя в этом случае echo $PATH где /usr/bin стоит перед /usr/local/bin и    pkg_info -L perl-5.8.0_4 | grep bin | sort | less. Дальше сам догадаешься что сделать.

Всего записей: 38 | Зарегистр. 28-04-2002 | Отправлено: 03:58 12-05-2003
mymuss



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Khan

Цитата:
А спасёт тебя в этом случае

Спасло но только для perldoc. А man остался старый...
 

Всего записей: 709 | Зарегистр. 13-04-2003 | Отправлено: 21:55 12-05-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Perl в FreeBSD: как обновить через порты?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru