23 ответов:
На Unix:
обычно вы начинаете cpan в командной строке:
# cpanи типа
install Chocolate::Belgianили в краткой форме:
cpan Chocolate::BelgianНа Windows:
если вы используете ActivePerl на Windows, то PPM (Perl Package Manager) имеет большую часть той же функциональности, что и CPAN.pm.
пример:
# ppmppm> search net-smtpppm> install Net-SMTP-Multipartпосмотреть Как установить модули Perl? в CPAN FAQ
многие дистрибутивы отправляют много модулей perl в виде пакетов.
- в Gentoo: категория dev-perl
- Debian:
apt-cache search 'perl$'вы должны всегда предпочитаю их, как вы выгода от автоматического (безопасность)обновления и простоту . Это может быть довольно сложно с cpan сам инструмент.
для Gentoo есть хороший инструмент под названием g-cpan который строит / устанавливает модуль из CPAN и создает пакет Gentoo ( ebuild) для вас.
попробовать App:: cpanminus:
# cpanm Chocolate::Belgianэто отлично подходит для просто получить вещи установлены. Он не предоставляет ни одной из более сложных функций CPAN или CPANPLUS, поэтому он прост в использовании, если вы знаете, какой модуль вы хотите установить. Если у вас еще нет cpanminus, просто введите:
# cpan App::cpanminusдля ее установки.
также можно установить его без использования cpan вообще. Основная процедура начальной загрузки,
curl -L http://cpanmin.us | perl - --sudo App::cpanminusдля дополнительная информация перейдите на страницу App::cpanminus и посмотрите раздел по установке.
Я отмечаю, что некоторые люди предлагают один запуск cpan под sudo. Это было необходимо для установки в системный каталог, но современные версии оболочки CPAN позволяют настроить его для использования sudo просто для установки. Это намного безопаснее, так как это означает, что тесты не выполняются как root.
Если у вас есть старая оболочка CPAN, просто установите новую cpan ("install CPAN"), и когда вы перезагрузите оболочку, она должна предложить вам настроить эти новые директивы.
В настоящее время, когда я нахожусь в системе со старым CPAN, первое, что я делаю, это обновить оболочку и настроить ее для этого, чтобы я мог выполнять большую часть своей работы cpan как обычный пользователь.
кроме того, я настоятельно рекомендую пользователям Windows исследовать клубника на Perl. Это версия Perl, которая поставляется в комплекте с предварительно настроенной оболочкой CPAN, а также компилятором. Он также включает в себя некоторые трудно компилируемые модули Perl с их внешней библиотекой C зависимости, в частности XML:: Parser. Это означает, что вы можете делать то же самое, что и любой другой пользователь Perl, когда речь заходит об установке модулей, и вещи, как правило, "просто работают" намного чаще.
Если вы находитесь на Ubuntu, и вы хотите установить предварительно упакованный модуль perl (например, geo:: ipfree) попробуйте это:
$ apt-cache search perl geo::ipfree libgeo-ipfree-perl - A look up country of ip address Perl module $ sudo apt-get install libgeo-ipfree-perl
несколько человек упомянули утилиту cpan, но это больше, чем просто запуск оболочки. Просто дайте ему модули, которые вы хотите установить, и пусть он делает свою работу.
$prompt> cpan Foo::BarЕсли вы не даете ему никаких аргументов, он начинает CPAN.pm Шелл. Это работает на Unix, Mac и должно быть просто отлично на Windows (особенно Strawberry Perl).
есть несколько других вещей, которые вы можете сделать с помощью инструмента cpan, а также. Вот краткое описание текущих функций (которые может быть новее, чем тот, который поставляется с CPAN.pm и perl):
-a Creates the CPAN.pm autobundle with CPAN::Shell->autobundle. -A module [ module ... ] Shows the primary maintainers for the specified modules -C module [ module ... ] Show the Changes files for the specified modules -D module [ module ... ] Show the module details. This prints one line for each out-of-date module (meaning, modules locally installed but have newer versions on CPAN). Each line has three columns: module name, local version, and CPAN version. -L author [ author ... ] List the modules by the specified authors. -h Prints a help message. -O Show the out-of-date modules. -r Recompiles dynamically loaded modules with CPAN::Shell->recompile. -v Print the script version and CPAN.pm version.
см. Также да, даже вы можете использовать CPAN. Он показывает, как вы можете использовать CPAN без доступа root или sudo.
Отто сделал a хорошее предложение. Это работает и для Debian, а также для любого другого производного Debian. Недостающая часть - это то, что делать, когда поиск apt-cache не находит чего-то.
$ sudo apt-get install dh-make-perl build-essential apt-file $ sudo apt-file updateтогда, когда у вас есть случайный модуль, который вы хотите установить:
$ cd ~/some/path $ dh-make-perl --build --cpan Some::Random::Module $ sudo dpkg -i libsome-random-module-perl-0.01-1_i386.debэто даст вам пакет deb, который вы можете установить, чтобы получить некоторые::Random::Module. Одним из больших преимуществ здесь является man-страницы и примеры сценариев в дополнение к самому модулю будет будьте размещены в месте вашего дистрибутива по выбору. Если дистрибутив когда-либо выйдет с официальным пакетом для более новой версии Some::Random::Module, он будет автоматически установлен при обновлении apt-get.
уже ответил и принял ответ - но все равно:
IMHO самый простой способ установки модулей CPAN (на unix-подобных системах и понятия не имеет о wondows):
curl -L http://cpanmin.us | perl - --sudo App::cpanminusвыше устанавливается "Zero configuration CPAN modules installer" под названием
cpanm. (Может занять несколько минут, чтобы установить - не нарушайте процесс)и после - просто:
cpanm Foo cpanm Module::One cpanm Another::Module
много раз случается, что команда установки cpan завершается неудачей с сообщением типа "сделать тест вернулся плохой статус, не будет устанавливать без силы"
в этом случае ниже приведен способ установки модуля:
perl -MCPAN -e "CPAN::Shell->force(qw(install Foo::Bar));"
много рекомендаций для
CPAN.pm, что здорово, но если вы используетеPerl 5.10тогда у вас также есть доступ кCPANPLUS.pmэто какCPAN.pmно лучше.и, конечно же, он доступен на
CPANдля людей, все еще использующих старые версии Perl. Почему бы не попробовать:$ cpan CPANPLUS
2 способа, которые я знаю :
ИСПОЛЬЗУЯ PPM:
С Windows (ActivePerl) я использовал ppm
из командной строки введите ppm. В промилле подскажут ...
ppm> install fooили
ppm> search fooчтобы получить список доступных модулей foo. Типа помогите для всех команд
С ПОМОЩЬЮ CPAN:
вы также можете использовать CPAN, как это (*Nix системы) :
perl -MCPAN -e 'shell'получает вас строки
cpan>в командной строке ...
cpan> install foo (again to install the foo module)введите h, чтобы получить список команд для cpan
используйте команду cpan как
cpan Modulename$ cpan HTML::Parserдля автоматической установки зависимостей выполните следующие действия
$ perl -MCPAN -e shell cpan[1]> o conf prerequisites_policy follow cpan[2]> o conf commit exitпредпочитаю App:: cpanminus, он устанавливает зависимости автоматически. Просто сделай
$ cpanm HTML::Parser
на ubuntu большинство модулей perl уже упакованы, поэтому установка выполняется намного быстрее, чем большинство других систем, которые должны компилироваться.
установить
Foo::Barв командной строке, например, обычно вы просто делаете:sudo apt-get install libfoo-bar-perlк сожалению, не все модули следуют этому соглашению об именовании.
On
Fedora LinuxилиEnterprise Linux,yumтакже отслеживает зависимости библиотеки perl. Итак, если модуль perl доступен, и некоторые пакеты rpm экспортируют эту зависимость, он установит правильный пакет для вас.yum install 'perl(Chocolate::Belgian)'(скорее всего perl-шоколадно-бельгийская упаковка, или даже ChocolateFactory пакет)
самый простой способ для меня-это:
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install DateTime::TimeZone'a) автоматическое рекурсивное обнаружение зависимостей / разрешение / установка
b) это оболочка onliner, хорошо подходит для setup-скриптов
в Windows с распределением ActiveState Perl используйте ppm.
Если вы хотите поместить новый модуль в пользовательское расположение, которое ваша оболочка cpan не настроена для использования, то, возможно, следующее будет удобно.
#wget <URL to the module.tgz> ##unpack perl Build.PL ./Build destdir=$HOME install_base=$HOME ./Build destdir=$HOME install_base=$HOME install
иногда вы можете использовать
yum search fooдля поиска относительного модуля perl, затем используйтеyum install xxxустановить.
Похоже, вы уже получили свой ответ, но я решил, что я бы перезвонил. Это то, что я делаю в некоторых скриптах на Ubuntu (или сервере debian)
#!/usr/bin/perl use warnings; use strict; #I've gotten into the habit of setting this on all my scripts, prevents weird path issues if the script is not being run by root $ENV{'PATH'} = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'; #Fill this with the perl modules required for your project my @perl = qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTime Config::Tiny Proc::ProcessTable); chomp(my $curl = `which curl`); if(!$curl){ system('apt-get install curl -y > /dev/null'); } chomp(my $cpanm = system('/bin/bash', '-c', 'which cpanm &>/dev/null')); #installs cpanm if missing if($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus'); } #loops through required modules and installs them if missing foreach my $x (@perl){ eval "use $x"; if($@){ system("cpanm $x"); eval "use $x"; } }Это хорошо работает для меня, может быть, есть что-то здесь вы можете использовать.
Comments