skokov.ru

Фотоблог Скокова Ильи

Хостинг РБК. Установка модулей Perl

Среда 02 Июл 2008

Для проверки установленных модулей Perl нужно воспользоваться скриптом perl_mod_inst.cgi следующего вида:

#!/usr/bin/perl

print «Content-type: text/html\n\n»;
print «<html><head><title>Installed Perl Modules</title></head><body><table width=\»300px\» border=1><td><tr><td>Module</td> <td>Version</td>
«;
use ExtUtils::Installed;
my $instmod = ExtUtils::Installed->new();
foreach my $module ($instmod->modules())
{ my $version = $instmod->version($module) || «-»; print «<tr><td>$module</td> <td>$version</td></tr> \r\n»; }
print «</table></body></html>»;

Его нужно сохранить в директории cgi-bin вашего сайта и дать ему права на выполнение:

chmod 755 perl_mod_inst.cgi

Пример выполнения можно посмотреть ТУТ

Далее при попытке установки модулей через CPAN получил:

$ cpan -i CGI::Ajax
CPAN: Storable loaded ok
mkdir /home/ivan/.cpan: Permission denied at /usr/local/lib/perl5/5.8.8/CPAN.pm line 2341

$ cpan
Terminal does not support AddHistory.
Your configuration suggests «/home/ivan/.cpan» as your
CPAN.pm working directory. I could not create this directory due
to this error: mkdir /home/ivan/.cpan: Permission denied at /usr/local/lib/perl5/5.8.8/CPAN.pm line 553
Please make sure the directory exists and is writable.
вот..

Скачиваю модуль CGI::Ajax

cd ~/
mkdir perl_modules_bin
cd perl_modules_bin
wget http://search.cpan.org/CPAN/authors/id/B/BC/BCT/CGI-Ajax-0.701.tar.gz
tar zxf CGI-Ajax-0.701.tar.gz
cd CGI-Ajax-0.701

Итак, из под root‘a я бы сделал вот так:

perl Makefile.PL
make
make test
make install

Так как я являюсь обычным хостинг-пользователем и хочу установить модуль к себе в локальную директорию, выполню команды:

perl Makefile.PL prefix=$HOME/библиотеки
make
make test
make install

Подробнее:
$ perl Makefile.PL prefix=$HOME/lib
Checking if your kit is complete…
Looks good
Writing Makefile for CGI::Ajax
$ make
cp lib/CGI/Ajax.pm blib/lib/CGI/Ajax.pm
Manifying blib/man3/CGI::Ajax.3
$ make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl «-MExtUtils::Command::MM» «-e» «test_harness(0, ‘blib/lib’, ‘blib/arch’)» t/*.t
t/001_load….ok
t/002_load….ok
All tests successful.
Files=2, Tests=3, 0 wallclock secs ( 0.06 cusr + 0.05 csys = 0.11 CPU)
$ make install
Installing /www/remaxm/lib/lib/perl5/site_perl/5.8.8/CGI/Ajax.pm
Installing /www/remaxm/lib/lib/perl5/5.8.8/man/man3/CGI::Ajax.3
Writing /www/remaxm/lib/lib/perl5/site_perl/5.8.8/mach/auto/CGI/Ajax/.packlist
FreeBSD: Registering installation in the package database
Cannot create directory /var/db/pkg/bsdpan-CGI-Ajax-0.701: Permission denied
Appending installation info to /www/remaxm/lib/lib/perl5/5.8.8/mach/perllocal.pod

После выполнения последней команды в домашнем каталоге создастся директория «lib», а в ней — какие-то дополнительные поддиректории. Но как же Perl найдет путь к нужному модулю?.. Очень просто: указываем его в первой строчке запускаемого скрипта:
#!/usr/bin/perl -w
use lib ($ENV{HOME}||»$ENV{DOCUMENT_ROOT}/..»).
‘/lib/lib/perl5/site_perl/5.8.8/CGI/’;

А точнее
use lib («$ENV{HOME}/lib/lib/perl5/site_perl/5.8.8″);
use CGI::Ajax в скрипте – подразумевает наличие модуля Ajax.pm в директории CGI ))

$ENV{DOCUMENT_ROOT} – используется, если недоступна $ENV{HOME}

Здесь подразумевается, что модуль Ajax.pm установился в вашем домашнем каталоге в директорию /lib/lib/perl5/site_perl/5.8.8/CGI/.

Ссылка 1
Ссылка 2

Поиск Perl-модулей в CPAN

Похожие записи:
  1. mysqldumpupload ISPmanager 4.3 Lite Ошибка: Внутренняя ошибка malformed result Для включения: Настройки сервера-> Расширения-> mysqldumpupload Затем идём в Инструменты-> Импорт дампа MySQL «Ошибка: Внутренняя ошибка malformed result» Соответственно, нет...
  2. Проверка скрипта Perl на наличие ошибок Это можно сделать через ssh командой: perl -Tw script_name.pl ...
  3. Установка ffmpeg для php5 в ISPManager 4.3.30 Lite на Debian Lenny (5.0.3) Идём в ISPManager – «Настройки сервера»->»Расширения PHP» Здесь отображается список всех установленных расширений, затем справа вверху кликаем по значку в...
  4. Установка «Битрикс 8.0.5″ в кодировке UTF8 и проблема с mbstring.func_overload При установке «1С-Битрикс: Управление сайтом 8.0.5» может возникнуть ошибка: «Для установки продукта в кодировке UTF-8 необходимо установить библиотеку mbstring c...
  5. SSH for WINDOWS в 5 сек! Windows XP Professional and OpenSSH После установки OpenSSH (берём отсюда: Portable OpenSSH), в коммандной строке (cmd.exe) перехожу в директорию C:\Program...

Отзывов: 7 »

Спасибо, очень помогла статья, столкнулся с аналогичной проблемой.

15 Янв 2009 | 9:56
Admin700:

Рульная тема, работает.

31 Янв 2009 | 16:49
Александр:

Столкнулся с проблемой. Ман помог при установке ряда модулей, но вот например DBIx::Class согласно этому ману не идет. Можете дать комментарий как поставить данный модуль на хостинг РБК?

23 Июн 2009 | 15:32
jump:

Воспользуйтесь CPAN, здесь подробно описано: http://www.dcc.fc.up.pt/~pbrandao/aulas/0203/AR/modules_inst_cpan.html но на РБК не все модули ставятся, иногда возникают ошибки, которые смело можно игнорировать, а если не ставится попробуйте forced-режим. Не разберётесь, пишите.

23 Июн 2009 | 19:45
Slava:

А ещё, чтобы не получать ошибки:
Cannot create directory /var/db/pkg
перед установкой модулей установите переменную DISABLE_BSDPAN в 1:

DISABLE_BSDPAN=1
export DISABLE_BSDPAN

Проверить можно так
echo $DISABLE_BSDPAN

28 Окт 2009 | 20:52

Ага, спасибо за подсказку.

29 Окт 2009 | 14:02

А хостинг уже давно не РБК а Хостинг Центр )

14 Апр 2010 | 17:09
Оставьте свой отзыв

Комментарии