понедельник, 10 декабря 2012 г.

CentOS 5 и perl 5.10+

Дело в том, что штатно версия в системе 5.8.8.
Если надо свежее:
1) Подключить допрепу, например
https://packages.endpoint.com/rhel/5/os/

wget https://packages.endpoint.com/rhel/5/os/`uname -i`/endpoint-repo-1.0-2.i386.rpm
rpm -i endpoint*

yum install local-perl и далее perl-* заменяем на local-perl-*
(тут версия 5.10)

2) использовать perlbrew

The "Modern" way of setting up a version of Perl different from the system Perl is by using
perlbrew - this way you can maintain a Perl version on a per-user basis without messing too much with the system installed perl; this way system installed stuff that uses Perl still works without problems.

http://serverfault.com/questions/269018/perl-5-10-on-centos-5

yum install perlbrew

perlbrew init
(выполняем, что сказали)

смотрим список того, что нам вообще доступно
perlbrew available

Ставим.
perlbrew install perl-5.12.5
но тут можно получить "упс":

Можно получить
Installing /root/perl5/perlbrew/build/perl-5.12.5 into ~/perl5/perlbrew/perls/perl-5.12.5

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.log

Installing /root/perl5/perlbrew/build/perl-5.12.5 failed. See /root/perl5/perlbrew/build.log to see why.

А в логе:
...
./trygcc: line 25: gcc: command not found
./checkcc: line 10: cc: command not found
Uh-oh, the C compiler 'cc' doesn't seem to be working.

То есть нету gcc.
Доставим:
yum install -y gcc
Как я понимаю, компилятор обязателен, тогда непонятно, почему он не указан в зависимостях.

Повторяем install, получаем

Installed /root/perl5/perlbrew/build/perl-5.12.5 as perl-5.12.5 successfully. Run the following command to switch to it.

  perlbrew switch perl-5.12.5


Какие версии доступны для переключения
perlbrew list

Больше информации в perlbrew help

Также к нему рекомендуют ставить cpanm
плюс
"в общем, если сильно беспокоит вопрос актуального состояние всего и вся, то можно поставить App::cpanoutdated и с нужной периодичностью запускать «cpan-outdated | cpanm» сначала в тестовом окружении, а затем в продакшене"

3) собрать свои пакеты и поставить их.
Полно док типа
http://administraher.blogspot.ru/2010/12/upgrade-perl-588-to-5122-perl.html
но проблема в make install clean без контроля, что куда и как ставится. Поэтому _необходимо_ собрать пакеты и уже ставить их.
И да, будет конфликт версий, поэтому ставить надо будет  в нештатное место, что опять же при тупом make install clean приведет к проблемам.
И вообще, если perlbrew делает всё нужное включая отслеживание, сборку и установку, зачем извращаться?...

2 комментария:

  1. perl у endpoint без поддержи multithread.. Они говорят, так стабильнее блин ))

    ОтветитьУдалить
    Ответы
    1. я пересобрал то, что у было у endpoint , но с с поддержкой мультипоточности - http://blog.kitlinkor.ru/perl-5-14-%D0%B4%D0%BB%D1%8F-centos6/

      Удалить