Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы со сборкой модуля, Ошибка при сборке -1 
:(
    Опции темы
ivanpet
Дата 14.8.2008, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Здравствуйте!

Сайт размещается на хостере,  имеется на нем perl, модулей нужных как обычно нет. Прочитали статью по установке модулей - заинтересовало то, что можно в обход прова установить и использовать свои модули.

Для компиляции и сборки нужного модуля написали скрипт следующего содержания (имеется ввиду что модуль уже распокован и закачан на хостинг):

#!/usr/bin/perl -t

print "Content-type: text/html\n";
print "Pragma: no-cache\n";
print "Expires: now\n\n";
print "Домашняя директория - $HOME";
print "<br>";

print system ('/usr/bin/perl -t Makefile.PL PREFIX=$HOME/mylib');
print system ('make');
print system ('make test');
print system ('make install');

Запускаем скрипт из браузера IE7.0. 
Происходит следующее:
Файл Makefile создается, функция возвращает 0, а вот собрать не можем - функци возращает -1.
Может кто-нибудь подскажет в чем проблема и как ее порешать, если это возможно?

PM MAIL   Вверх
Ramirez
Дата 14.8.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 18.1.2005
Где: Moscow, ExUSSR

Репутация: 1
Всего: 5



Собрать на своей машине (ос думаю нужно такую же как на хосте) и положить на сервер хостеру (и надеятся что пусти в системе у него стандартные, и либы нужные есть).
PM ICQ   Вверх
nitr
Дата 14.8.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



ivanpet, вы уверены что нужна "компиляция"/сборка?
Если нет, то зачем "так извращаться", просто положите ваши модули .pm в ./libs
А в скрипте пропишите 
Код

use lib './libs';


Добавлено через 35 секунд
./libs относительно вашего скрипта


--------------------
PM   Вверх
ivanpet
Дата 14.8.2008, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Спасибо за советы.
1. Мы в линуксе не очень, но мыслим в таком направлении, если, например, попробовать положить в папку скриптов файл make, а затем запустить скрипт, интересно, файл make запуститься?
2. Собрать этот же самый модуль, например, на виндовой машине, а получившийся модуль положить в нашу папку /mylib. По виндой пробовали собрать, все получилось, и модуль работает под виндовым апачем. Практически все полученные файлы - обычные с расширением *.pm, но вот один файл .packlist содержит пути именно к нашему модулю. Под виндой файл выглядит так c:\inet\localhost... Может собрать на виндовой машине и положить готовый модуль на хостер, с подменой путей скажем /mylib. Интересно сработает, как думаете?

P.S.
Положили, ради эксперемента один файл smtp_m.pm в директорию /mylib
Подключаем так:
use lib $root_dir.'/mylib';
use SMTP_M;
При запуске скрипта выдается:
Can't locate SMTP_M.pm in @INC (@INC contains: /mylib /usr/lib/perl5/5.8.5/i386-linux-thread-multi и т.д. )
Подскажите как правильно БЕЗ сборки указать пути к модулю?

Это сообщение отредактировал(а) ivanpet - 14.8.2008, 16:48
PM MAIL   Вверх
nitr
Дата 14.8.2008, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



ivanpet
Цитата(ivanpet @  14.8.2008,  15:56 Найти цитируемый пост)
1. Мы в линуксе не очень, но мыслим в таком направлении, если, например, попробовать положить в папку скриптов файл make, а затем запустить скрипт, интересно, файл make запуститься?
2. Собрать этот же самый модуль, например, на виндовой машине, а получившийся модуль положить в нашу папку /mylib. По виндой пробовали собрать, все получилось, и модуль работает под виндовым апачем. Практически все полученные файлы - обычные с расширением *.pm, но вот один файл .packlist содержит пути именно к нашему модулю. Под виндой файл выглядит так c:\inet\localhost... Может собрать на виндовой машине и положить готовый модуль на хостер, с подменой путей скажем /mylib. Интересно сработает, как думаете?

выбросите это из головы smile

Цитата(ivanpet @  14.8.2008,  15:56 Найти цитируемый пост)
P.S.
Положили, ради эксперемента один файл smtp_m.pm в директорию /mylib
Подключаем так:
use lib $root_dir.'/mylib';
use SMTP_M;
При запуске скрипта выдается:
Can't locate SMTP_M.pm in @INC (@INC contains: /mylib /usr/lib/perl5/5.8.5/i386-linux-thread-multi и т.д. )
Подскажите как правильно БЕЗ сборки указать пути к модулю?

Положите файл в ./mylib, чтобы назывался SMTP_M.pm
и можно подключать
Код
use lib './mylib';
use SMTP_M;




--------------------
PM   Вверх
ivanpet
Дата 15.8.2008, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Цитата(nitr @ 14.8.2008,  17:11)
Положите файл в ./mylib, чтобы назывался SMTP_M.pm
и можно подключать
Код
use lib './mylib';
use SMTP_M;



Не понятно, Вы извините за назойливость.
Где должна располагаться эта папка?
При подключении на хостинг через FTP видим следующее:
папки:
logs (логи апача)
site (куда выкладывается сайт)
tmp (временные файлы)
создаем папку mylib тут же и выкладываем файл SMTP_M - не подключается, выдается то же сообщение об ошибке!
Заходим в папку site и создаем там - тоже не работает
PM MAIL   Вверх
nitr
Дата 15.8.2008, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



предположим папка с нашим скриптом в site
создаём папку mylib в папке site
кладём в mylib файл SMTP_M.pm

и прописываем как уже выше сказал. Есть большая вероятность, что вы это уже проделали, но у вас где-то ошибка, как например с именем файла модуля, возможно модуль самописный и т.д.. Если не получится, ошибку сюда.

Добавлено через 1 минуту и 26 секунд
Код

use lib './mylib';
use SMTP_M;

посмотрите внимательно путь не /mylib а именно ./mylib (точку не пропустите)

Добавлено через 2 минуты и 43 секунды
Где у вас скрипт лежит который 100% работает без этого модуля?


--------------------
PM   Вверх
ivanpet
Дата 15.8.2008, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



предположим папка с нашим скриптом в site
создаём папку mylib в папке site
кладём в mylib файл SMTP_M.pm

Да именно так и сделано было. (во втором случае)

...и прописываем как уже выше сказал. Есть большая вероятность, что вы это уже проделали...
Вот код скрипта, который пытается подключить модуль

unshift(@INC,$root_dir);
require $root_dir."/config/"."config.pl";

use strict;
use CGI qw/:standard :cgi-lib/;
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use lib './mylib';
use SMTP_M;

...возможно модуль самописный...
Да нет,  на самом деле скачанный со CPAN, могу выложить, если нужно. Модуль - обычный NET::SMTP, только версия поновее. Начали возится потому, что скрипт прова не работает (не может отправлять почту), а этот - работает, по крайней мере на виндовой машине.

Если не получится, ошибку сюда.
Ошибка та же
Can't locate SMTP_M.pm in @INC (@INC contains: /mylib /usr/lib/perl5/5.8.5/i386-linux-thread-multi и т.д. )

Где у вас скрипт лежит который 100% работает без этого модуля?
Лежит в папке /site/cgi-bin/usemodul.pl

PM MAIL   Вверх
ivanpet
Дата 15.8.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Модуль подключился, мы только не поняли почему
Вместо:
Код

use lib './mylib';
use SMTP_M;

Мы использовали:
Код

use lib '../mylib';
use SMTP_M;


Огромное спасибо за поддержку smile
PM MAIL   Вверх
nitr
Дата 15.8.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



Вот вы уже стали говорить дело smile Сказали какой модуль и т.д.
Копируйте папку Net , которая лежит в архиве http://search.cpan.org/CPAN/authors/id/G/G...net-1.22.tar.gz

напиши примерно такой скрипт (только под cgi его измените):
Код
#/usr/bin/perl
use strict;
use warnings;

use lib './mylib';
use Net::SMTP;

print "$Net::SMTP::VERSION\n";


Добавлено через 35 секунд
Увидите, что используется ваш "новый" модуль.

Скажите - зачем вам это?
Цитата(ivanpet @  15.8.2008,  11:05 Найти цитируемый пост)
unshift(@INC,$root_dir);
require $root_dir."/config/"."config.pl";




--------------------
PM   Вверх
ivanpet
Дата 15.8.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 8.1.2007

Репутация: нет
Всего: нет



Да, спасибо. Теперь версия smtp пакета 2.31

Код
unshift(@INC,$root_dir);

Прочитали в какой-то книжке

Код
require $root_dir."/config/"."config.pl";

в этой папке лежат файлы с настройками: доступ к базе, соединение с smtp и т.д. А Вы что посоветуете?

PM MAIL   Вверх
nitr
Дата 15.8.2008, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



ivanpet, можно поставить галочку по этой теме, и создать новую тему как кто посоветует smile (или поискать на форуме).


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.