![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Lvovich2011 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.10.2011 Репутация: нет Всего: нет |
Здравствуйте.
Есть Perl-система: интернет-магазин. Каждый купивший ее клиент вынужден обращаться к своему хостеру и давать заявку на установку дополнительных Perl-модулей. Да и со стандартными модулями у многих хостеров наблюдается определенный бардак. У клиента, разумеется, нет никаких прав и знаний об установке модулей. Хочется сделать так, чтобы система не зависела от того, какой дистрибутив Perl и в каком объеме установлен у хостера. Т.е., например, устанавливается система в cgi-bin, внутри директория lib, где расположены необходимые модули. Скажите, возможно ли использовать CPAN-модули без установки, а просто накачать со CPAN, развернуть в lib и прописать в скрипте
Тогда установка упростится, у клиента просто разворачивается архив, и система готова к работе "из коробки". Мечты, конечно, но реализуемы вполне. Одна затычка - не удается все необходимые библиотеки так подцепить. Например, при попытке использования Crypt::SSLeay возникает ошибка
А при использовании MIME::Base64 без установки ошибка
Есть ли варианты решения данной проблемы? Буду очень благодарен за помощь! |
||||||
|
|||||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
||||
|
||||
taryk |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 16.1.2011 Где: Ukraine Репутация: нет Всего: нет |
MIME::Base64 - стандартный модуль который уже есть в системе.
Crypt::SSLeay содержит xs который нужно скомпилировать. |
|||
|
||||
Lvovich2011 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.10.2011 Репутация: нет Всего: нет |
Вы не подскажете, как скомпилировать? Я с nix не работал на таком уровне :( И еще: компиляция - это привязка к ОС, да? Или нет? Просто, цель у меня - сделать так, чтобы в директории lib были рабочие библиотеки, которые не требуют допиливания при развороте у клиента. Библиотеки такие: SOAP::Lite, Crypt::SSLeay. |
|||
|
||||
arto |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. обычно все опиано в README или INSTALL
2. компиляция -- привязка к конкретной архитектуре, конкретной версии perl и конкретной версии библиотеки 3. проще вам нанять специалиста, слишком много нетривиальных вопросов надо вам будет решить. |
|||
|
||||
Lvovich2011 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.10.2011 Репутация: нет Всего: нет |
Получается, я должен по-любому сделать: 1. Скопировать необходимые библиотеки в любую директорию 2. запустить необходимые процедуры установки (возможно, makefile.pl - с prefix='cgi-bin/lib') Т.е., простое копирование библиотек в мой директорию lib может не дать нормальной работы (останется конфликт версий или отсутствие загружаемых объектов, или еще что-нибудь...). Жаль, конечно :( Хотелось сделать так, чтобы не пришлось устанавливать библиотеки... |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
не пользуйтесь теми, что XS и все.
|
|||
|
||||
Lvovich2011 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.10.2011 Репутация: нет Всего: нет |
К сожалению, вынужден использовать. Задача - сопряжение наших данных с Яндекс Директом посредством API Директа. Для этого нужны библиотеки: SOAP::Lite Crypt::SSLeay LWP::UserAgent С хостерами клиентов при этом постоянно возникают проблемы: то не установлено, то версия старая. Вот и возникла идея "тащить" эти библиотеки с собой. Т.е., мы разворачиваем клиенту свой дистрибутив в cgi-bin, и все нужные библиотеки уже есть и берутся из cgi-bin/lib с помощью директивы use 'lib'. Остальные библиотеки - стандартные, у всех хостеров есть в Perl-е. Если бы удалось подцепить эти три библиотеки, то требования к зоне значительно снизились бы. Может, все-таки, есть вариант решения данной задачи? |
|||
|
||||
taryk |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 16.1.2011 Где: Ukraine Репутация: нет Всего: нет |
Чтобы обеспечить кроссплатформенность - нужно скомпилировать под каждую платформу (linux-x86, linux-amd64, solaris-x86, solaris-sparc, freebsd-x86, etc) и подгружать нужный модуль в зависимости от платформы. смотрите в сторону PAR Это сообщение отредактировал(а) taryk - 11.10.2011, 11:50 |
|||
|
||||
Lvovich2011 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.10.2011 Репутация: нет Всего: нет |
О! Это - последняя капля! Что ж , не судьба, значит, использовать CPAN-модули в своей директории + директиву use 'lib' Тогда, думаю, просто обрежем базовую версию системы, уберем из нее несколько режимов, требующих CPAN-модулей с компиляцией XS. А насчет PAR: мне уже qcc здесь же его предлагал. Смысл? По-моему, любая разархивация упакованного кода увеличивает время запуска и требования к памяти. А, если Perl-система достаточно велика, да еще и число входов на сайт большое, потери будут также очень велики. Но, если имелось в виду архивировать с помощью PAR только откомпилированные CPAN-модули, то я уже сказал: скорее всего, мы откажемся от этой идеи :( Всем, кто помог мне прояснить ситуацию, большое спасибо! Это сообщение отредактировал(а) Lvovich2011 - 13.10.2011, 07:29 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |