Приспичело меня обновить perl в CentOS 5.5 для моих нужд, т.к. последний perl 5.8.8 и ждать пока редхатовцы раскачаются времени тоже нет. В общем порыскав по инету сутки, другие, я ничего особо детального не нашел. Пришлось рыть и, в принципе, все получилось. Сразу оговорюсь, что порядок моих действий с реальными может немного не совпадать, но постараюсь :).
У меня 64-bit-ная система.
Сначала поставим mysql-devel.x86_64 для установки DBD::mysql (после этого нужно пересобирать perl, если вы уже пробовали собирать perl):
# yum install mysql-devel.x86_64
Установим поддержку ldb (BerkeleyDB) библиотеки (после этого нужно пересобирать perl)
# yum install db4-devel.x86_64
Установим компилятор gcc, если он отсутствует:
# yum install gcc
Качаем самую новую libidn с оф. сайта:
# mkdir -p /root/MY/libidn# cd /root/MY/libidn# wget ftp://ftp.gnu.org/gnu/libidn/libidn-1.20.tar.gz# tar -zxvf libidn-1.20.tar.gz# cd libidn-1.20
Это небольшое отступление - http://cpansearch.perl.org/src/THOR/Net-LibIDN-0.12/README
Мне помогла именно установка самой новой libidn.
# ./configure# make# make install
2. Качаем и собираем перл из исходников
# mkdir -p /root/MY/perl# cd /root/MY/perl
Ссылку на последний стабильный perl можно найти здесь:
http://search.cpan.org/dist/perl/# wget http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/perl-5.12.3.tar.gz# tar -zxvf perl-5.12.3.tar.gz perl-5.12.3# cd perl-5.12.3
Собираем perl (я собирал вместе с доп. модулями "-Dextras="Bundle::LWP DBI DBD::mysql Bundle::DBD::mysql" сразу, но их можно и отдельно поставить)
# sh Configure -de -Dusethreads -Dextras="Bundle::LWP DBI DBD::mysql Bundle::DBD::mysql"# make && make test && make install
Для пересборки perl снова надо предварительно выполнить:
# make distclean
3. Заменяем старую версию на новую. (ЭТОТ ПУНКТ БЫЛ АКТУАЛЕН в CentOS 5.5 при апа до 5.12.2. Сейчас настраивал на CentOS 5.6 и апал до 5.12.3)
Смотрим куда у нас ссылается команда perl
# which perl
Смотрим какую версию у нас сейчас perl выдает
# perl -V
Во избежания некорректной отработки скриптов, поставим символическую ссылку на наш новый perl:
# mv /usr/bin/perl /usr/bin/perl58# ln -s /usr/local/bin/perl /usr/bin/perl
А теперь какую выдает :) (если новую, то идем дальше):
# perl -V
Кстати, сравнивать конфигурацию старого и нового perl'a бывает полезно, т.к. в это может помочь в разрешении проблем при установке модулей (у меня в основном была проблема только в devel пакетах, которые мы уже поставили):
# /usr/bin/perl58 -V# /usr/bin/perl -V
4. Добавим одну строчку в конфиг yum, чтобы у нас perl больше не обновлялся:
# nano /etc/yum.confexclude=perl
5. Настроим CPAN (автоматическая конфигурация):
# perl -MCPAN -e shell
y
y
6. Ставим необходимые модули (некоторые модули у нас уже стоят, но я думаю ничего страшного, если они у нас проверятся еще разок):
В одну строчку не захотела установка Term::ReadKey отрабатывает, так что входим в шел:
#perl -MCPAN -e shellinstall Term::ReadKey
# perl -MCPAN -e 'install Net::LibIDN, Data::ShowTable, DBD::mysql, DateTime, File::MimeInfo::Magic, BerkeleyDB, Test::YAML, MIME::Parser, Crypt::Blowfish, Crypt::PasswdMD5, HTML::Entities, MIME::Entity, DBI, Term::ReadPassword, Crypt::CBC, File::Copy::Recursive'
P.S. вот вроде бы и все. Если при выполнении перловских скриптов потребуются еще какие-то модули, просто поставим их.
Очень большое спасибо!!!
ОтветитьУдалитьРад помочь, отпишись как прошло. Мож статейку подкоректирую ...
ОтветитьУдалитьЯ делал по другому.
ОтветитьУдалить# cd /usr/local/src/
# wget http://www.cpan.org/src/stable.tar.gz
# gunzip stable.tar.gz
# tar xvf stable.tar
# cd perl-5.12.2
# ./Configure -de
# make && make test
# make install
Ну а потом сим-линки фигачим и отключаем апдейты. Почему-то по твоему мануалу не получилось, в итоге так и не нашел новую версию Perl'a. Собирал так по старинке
И чем же моя инструкция отличается от твоей?
ОтветитьУдалить1) Качаеше ты тоже стабильный, хоть немного и по другому, но версия одна и таже.
2) "./Configure -de" - и у меня тоже самое, только я добавил еще использование нитей и компиляцию сразу доп модулей, т.е. достаточно и того, что ты написал.
Скорей всего у тебя затык случился из-за того что пакеты девовские пакеты не стояли в системе такие как:
# yum install mysql-devel.x86_64
# yum install db4-devel.x86_64
всё отлично прошло, спасибо за статью
ОтветитьУдалитьтолько непонятен п. 5
что за y, y?
у меня сразу выдало приглашение
cpan[1]> y
Unknown shell command 'y'. Type ? for help.
п.5 это для первоначальной настройки, когда perl спрашивает про автоматическую настройку
ОтветитьУдалить