2009-03-05 4 views
16

Возможно ли это?Как установить модуль Perl без использования CPAN.pm?

+0

Почему вы хотите это сделать? – andrewrk

+0

Если у вас нет разрешения на установку в основной библиотеке perl, возможно, CPAN.pm может установить где-то локально, но я забыл, как это сделать. –

+0

Да, см. Ответ Лео. – tunnuz

ответ

7

Если вы загружаете исходный код, у него обычно будет Makefile.PL. Вы запускаете «perl Makefile.PL; make; make test; make install», и он будет создавать и устанавливать для вас.

Очевидно, что если вы не используете CPAN.pm, вам придется иметь дело с зависимостями самостоятельно.

Также, если причина, по которой вы не можете использовать CPAN.pm, заключается в том, что у вас нет разрешения на установку в/usr/lib/perl, вы можете заставить CPAN.pm установить локально, но я забыл, как это сделать.

+1

Или для модуля :: Build based distribution: perl Build.PL; perl Build; perl Build test; perl Build install – ysth

+2

Запуск «o conf init» в оболочке CPAN - это самый простой способ переконфигурировать все это. – Schwern

+0

Вы можете установить значение как makepl_arg, так и buildpl_arg для установки любых значений, которые вы хотели бы использовать во время сборки. См. Документацию CPAN.pm. –

0

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

+0

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

+0

Хороший вопрос, отредактировал мой ответ. Я поместил .pms в папку perl libs, но я разработал их, и у них не было зависимостей: D –

+0

У меня есть UserAgent.pm. Я могу просто положить его в папку программы? Что, если у него есть зависимости? – lamcro

32

Если вы загружаете исходный код и читаете файл README. Это, вероятно, сказать вам, что вы должны сделать

perl Makefile.PL 
make 
make test 
make install 

или

perl Build.PL 
./Build 
./Build test 
./Build install 
1

Если проблема нет доступа корня, я бы рекомендовал смотреть на local::lib, а также this webpage для CPAN.pm и установки внекорневой.

Но для ответа на интересующий вопрос CPAN или CPANPLUS полезны, но они не требуются. Вы всегда можете сделать это по-старому, как говорит Леон, - хотя обычно этого легче не делать.

+0

Вы также можете запустить «o conf init» для повторной настройки полной конфигурации CPAN. – Schwern

+0

До тех пор, пока у вас есть достойный компилятор и доступ к нему, вы можете загружать локальный :: lib в свой домашний каталог и вообще не нужен корневой доступ. С другой стороны, я видел коробки солярис с довольно сильно заблокированными компиляторами, которые ограничивают полезность этого подхода. – singingfish

3

Если вы находитесь в ящике Linux, очень большую часть пакетов можно получить, используя встроенный диспетчер пакетов. Например, в системе Ubuntu, если вы хотите установить модуль PostgreSQL Perl вы бы просто сделать:

sudo apt-get install libpg-perl 

Вы можете увидеть список модулей для Ubuntu здесь: http://packages.ubuntu.com/hardy/perl/

Я нахожу, часто могут догадываться об именах. Не уверен, что это вообще помогает, но для себя я часто нахожу это более простым в использовании, чем CPAN, поскольку он намного лучше справляется с решением зависимостей.

+1

Проблема в том, что это устанавливается в вашу систему Perl. Часто вы этого не хотите, даже если думаете, что делаете. –

0

Если вы используете Red Hat (Fedora, CentOS), вы должны использовать RPM для зависимостей Perl, где это возможно. Perl-пакеты: почти всегда с именем perl-Module-Name, например. perl-DBI, perl-Spreadsheet-WriteExcel и т. д.

На Ubuntu схема именования - libmodule-name-perl.

+0

Проблема в том, что это устанавливается в вашу систему Perl. Часто вы этого не хотите, даже если думаете, что делаете. –

-1

Я, как и другие, настоятельно рекомендую использовать CPAN.pm. Это бриз для использования и может разрешать любые зависимости, связанные с необходимым вам модулем.

С другой стороны, я предлагаю вам прочитать документ perlmodinstall по адресу perldoc, так как он дает подробную информацию о других os '.

С уважением,

Джефф

+0

Это не легкий ветерок. Вы когда-нибудь пробовали использовать cpan.pm на MinGW? Это очень сложно. У него заканчивается память, и он просто терпит неудачу, пытается установить в директории, на которые у вас нет прав, или просто задает слишком много сложных вопросов, на которые вы не знаете ответов. – Dmitry

+0

Я не использую Windows и никогда не пробовал MiniGW, но похоже, что у него есть свои проблемы. Вы можете попробовать запустить LInux в VM с чем-то вроде VirtualBox и посмотреть, как он работает для вас там. – numberwhun

2

Смотрите здесь: How to install perl modules using CPAN without root

Я просто установить это на сервере без корневого доступа и CPAN делает все автоматически.

Но если вы действительно хотите установить модуль без CPAN, и вы не имеете корень (предполагая, что это, так как вы не хотите использовать CPAN), вы можете сделать это следующим образом

perl Makefile.PL PREFIX=$HOME 
make 
make install 

Вы «Вам нужно будет самим искать зависимости, поэтому лучше использовать CPAN.

0

Мы можем установить все модули perl как с, так и с вашего терминала в ubuntu. Если вы используете сервер ubuntu, выполните следующую команду: 'sudo apt-get install "perl_module"' . Модули, которые вы хотите просто указать имя в «perl_module», означает, что если вы хотите установить Apache2 :: Cookie, это будет быть в «libapreq2», так что вам нужно дать как, «sudo apt-get install libapreq2»

-1

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

Возможно, у вас нет файла подкачки. Попробуйте следующее:

$ sudo su 
# dd if=/dev/zero of=/swap bs=1M count=1k # create a 1GB file 
# mkswap /swap 
# swapon /swap 

В противном случае ... остановка некоторых услуг.

$ sudo service mysql stop 
$ sudo service nginx stop 

... И попробуйте еще раз

$ cpan install CPAN 
$ cpan install MIME::Lite::TT::HTML 
+0

В случае с downvoter: перестаньте быть настолько анальным относительно буквального вопроса, есть вопрос, стоящий за каждым вопросом, и в этом случае действительный: почему не работает CPAN, потому что он не говорит вам, он просто терпит неудачу, я видел, что он не работает в малой ОЗУ, и это случается чаще всего, если у вас нет свопа. – dagelf

Смежные вопросы