Будьте очень осторожны в отношении безопасности: то, что необходимо для гарантии того, что модули не были изменены, должно быть безопасно загружено с доверенного сайта. Смотрите мой ответ по поводу использования cpan.
vinc17
Ответы:
226
В Unix :
обычно вы запускаете cpan в вашей оболочке:
# cpan
и введите
install Chocolate::Belgian
или в краткой форме:
cpan Chocolate::Belgian
В Windows :
Если вы используете ActivePerl в Windows, PPM (Perl Package Manager) обладает практически теми же функциями, что и CPAN.pm.
Многие дистрибутивы поставляют множество Perl-модулей в виде пакетов.
Debian / Ubuntu: apt-cache search 'perl$'
Arch Linux: pacman -Ss '^perl-'
Gentoo: категория dev-perl
Вы должны всегда отдавать им предпочтение, поскольку вы получаете выгоду от автоматических обновлений (безопасности) и простоты удаления . Это может быть довольно сложно с cpan инструментом .
Для Gentoo есть хороший инструмент под названием g-cpan, который собирает / устанавливает модуль из CPAN и создает для вас пакет Gentoo ( ebuild ).
Краткая форма - это просто «cpan Chocolate :: Belgian» из командной строки :)
Брайан Д. Фой
3
IIRC последней версии ActivePerl больше не имеет ppm командной строки, теперь он открывает модный графический интерфейс.
Кев
6
Просто «ppm» открывает графический интерфейс, но после команд он остается в командной строке. Итак, «ppm help», «ppm install ...» и т. Д.
Билл Рупперт
Обратите внимание, что ppm использует тире для разделителя пути модуля, а не обычные двойные двоеточия. (? Возможно , потому , что колоны значат диски в DOS) То есть я несколько раз;)
Матфея Заблокируйте
3
@MatthewLock: ppmиспользует дефисы, -потому что вы указываете дистрибутив , который хотите установить, что намного честнее. Например, если вы используете cpanдля установки LWP, LWP::Simpleили LWP::UserAgentон установит дистрибутив libwww-perlдля вас. Большинство дистрибутивов содержат один модуль с эквивалентным именем, но есть несколько подобных исключений
Это здорово, просто чтобы установить вещи. Он не предоставляет ни одной из более сложных функций CPAN или CPANPLUS, поэтому его легко использовать, если вы знаете, какой модуль вы хотите установить. Если вы еще не получили cpanminus, просто наберите:
# cpan App::cpanminus
установить его.
Также возможно установить его вообще без использования cpan. Основная процедура начальной загрузки:
Использование cpanдля установки App::cpanminusнемного странно. Обычные инструкции по установке включают в себя процедуру начальной загрузки, когда часть ее загружается из cpanmin.us и используется для установки остальных. Это позволяет избежать настройки cpanи создания (после этого) бесполезного .cpanкаталога.
час. Оуэнс
На Ubuntu вы можете просто установить cpanminusс терминала. Я считаю, что cpanmлучше, cpanпотому что он не выводит журналы ошибок на экран, а сохраняет их во временных файлах журналов и дает путь в случае ошибок.
user13107
Я получаю эту ошибку при попытке выполнить
IgorGanapolsky
29
Я заметил, что некоторые люди предлагают один запуск cpan под sudo. Раньше это было необходимо для установки в системный каталог, но современные версии оболочки CPAN позволяют настроить его для использования только sudo для установки. Это намного безопаснее, поскольку это означает, что тесты не запускаются от имени пользователя root.
Если у вас есть старая оболочка CPAN, просто установите новый cpan («установить CPAN»), и когда вы перезагрузите оболочку, она предложит вам настроить эти новые директивы.
В настоящее время, когда я работаю в системе со старым CPAN, первым делом я обновляю оболочку и настраиваю ее так, чтобы я мог выполнять большую часть своей работы cpan как обычный пользователь.
Кроме того, я настоятельно рекомендую пользователям Windows исследовать клубничный Perl . Это версия Perl, которая поставляется с предварительно настроенной оболочкой CPAN, а также с компилятором. Он также включает в себя некоторые трудно компилируемые модули Perl с их внешними зависимостями библиотеки C, в частности, XML :: Parser. Это означает, что вы можете делать то же самое, что и любой другой пользователь Perl, когда дело доходит до установки модулей, и вещи, как правило, «просто работают» гораздо чаще.
@Lao Tzu: нет, поскольку CPAN является основным модулем Perl и не доступен в виде отдельного пакета DEB. Я думаю, что в большинстве случаев это даже лучше использовать App::cpanminus, это такая радость, чтобы использовать его. Филипп Поттер предлагает это в своем ответе здесь, и вы можете попробовать этот час. Ответ Оуэнса .
WK
25
Если вы работаете в Ubuntu и хотите установить предварительно упакованный модуль perl (например, geo :: ipfree), попробуйте следующее:
$ apt-cache search perl geo :: ipfree
libgeo-ipfree-perl - страна поиска модуля Perl с IP-адресом
$ 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.
Отто сделал хорошее предложение . Это работает и для Debian, как и для любой другой производной Debian. Недостающая часть - что делать, когда поиск в apt-cache не находит ничего.
Это даст вам пакет deb, который вы можете установить, чтобы получить Some :: Random :: Module. Одним из больших преимуществ здесь являются страницы руководства и примеры сценариев в дополнение к самому модулю, который будет размещен в выбранном вами дистрибутиве. Если дистрибутив выпускает официальный пакет для более новой версии Some :: Random :: Module, он будет автоматически установлен при обновлении apt-get.
Много рекомендаций для CPAN.pm, и это здорово, но если вы используете, Perl 5.10то у вас также есть доступ к CPANPLUS.pmчему-то вроде, CPAN.pmно лучше.
И, конечно, он доступен CPANдля людей, все еще использующих более старые версии Perl. Почему бы не попробовать:
К сожалению, это приводит к следующему: Не удается найти CPAN.pm в @INC (может потребоваться установить модуль CPAN) (@INC содержит: / etc / perl
IgorGanapolsky
4
В Ubuntu большинство модулей Perl уже упакованы, поэтому установка происходит намного быстрее, чем в большинстве других систем, которые приходится компилировать.
Foo::BarНапример, чтобы установить в командной строке, просто выполните:
sudo apt-get install libfoo-bar-perl
К сожалению, не все модули следуют этому соглашению об именах.
На Fedora Linuxили Enterprise Linux, yumтакже треки библиотека Perl зависимостей. Таким образом, если модуль perl доступен, и какой-то пакет rpm экспортирует эту зависимость, он установит нужный вам пакет.
yum install 'perl(Chocolate::Belgian)'
(скорее всего, Perl-шоколадно-бельгийский пакет или даже пакет ChocolateFactory)
Если вы хотите поместить новый модуль в нестандартное место, в котором ваша оболочка cpan не настроена для использования, возможно, вам пригодится следующее.
#wget <URL to the module.tgz>##unpack
perl Build.PL
./Build destdir=$HOME install_base=$HOME
./Build destdir=$HOME install_base=$HOME install
Во многих ответах упоминается использование cpanутилиты (которая использует CPAN.pm) без слов о безопасности. По умолчанию CPAN2.27 и более ранние urllistверсии настраивают использование URL-адреса http (а именно, http://www.cpan.org/ ), который разрешает атаки MITM, поэтому небезопасен. Это то, что используется для загрузки CHECKSUMSфайлов, поэтому его необходимо заменить на безопасный URL-адрес (например, https://www.cpan.org/ ).
Таким образом, после запуска cpan и принятия конфигурации по умолчанию, вам нужно изменить сгенерированный MyConfig.pmфайл (выводится полный путь) следующим образом. замещать
'urllist'=>[q[http://www.cpan.org/]],
по
'urllist'=>[q[https://www.cpan.org/]],
Примечание: https не достаточно; Вам также нужен веб-сайт, которому вы можете доверять. Так что будьте осторожны, если хотите выбрать какое-нибудь произвольное зеркало.
Тогда вы можете использовать cpan обычным способом.
Мой отчет об ошибке на rt.cpan.org о небезопасном URL.
@DaveEveritt Перенаправление с http на https полезно только для обеспечения конфиденциальности, например, для тех, кто может просматривать только данные, передаваемые по сети. Но если злоумышленник контролирует сеть (например, публичную точку доступа Wi-Fi или некоторую незащищенную локальную сеть), атака «человек посередине» может быть возможной, и злоумышленник будет использовать свой собственный сервер (очевидно, нет https://www.cpan.org/).
vinc17
1
В Windows с дистрибутивом Perl ActiveState используйте команду ppm .
Похоже, вы уже получили свой ответ, но я решил, что я буду вмешиваться. Это то, что я делаю в некоторых скриптах на Ubuntu (или сервере Debian)
#!/usr/bin/perluse 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 projectmy@perl= qw(LWP::Simple XML::LibXML MIME::Lite DBI DateTimeConfig::TinyProc::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 missingif($cpanm){ system('curl -s -L http://cpanmin.us | perl - --sudo App::cpanminus');}#loops through required modules and installs them if missingforeachmy $x (@perl){eval"use $x";if($@){
system("cpanm $x");eval"use $x";}}
Это хорошо работает для меня, может быть, здесь есть что-то, что вы можете использовать.
cpan
.Ответы:
В Unix :
обычно вы запускаете cpan в вашей оболочке:
# cpan
и введите
install Chocolate::Belgian
или в краткой форме:
cpan Chocolate::Belgian
В Windows :
Пример:
# ppm
ppm> search net-smtp
ppm> install Net-SMTP-Multipart
смотрите Как установить модули Perl? в FAQ по CPAN
Многие дистрибутивы поставляют множество Perl-модулей в виде пакетов.
apt-cache search 'perl$'
pacman -Ss '^perl-'
dev-perl
Вы должны всегда отдавать им предпочтение, поскольку вы получаете выгоду от автоматических обновлений (безопасности) и простоты удаления . Это может быть довольно сложно с cpan инструментом .
Для Gentoo есть хороший инструмент под названием g-cpan, который собирает / устанавливает модуль из CPAN и создает для вас пакет Gentoo ( ebuild ).
источник
ppm
использует дефисы,-
потому что вы указываете дистрибутив , который хотите установить, что намного честнее. Например, если вы используетеcpan
для установкиLWP
,LWP::Simple
илиLWP::UserAgent
он установит дистрибутивlibwww-perl
для вас. Большинство дистрибутивов содержат один модуль с эквивалентным именем, но есть несколько подобных исключенийПопробуйте приложение :: cpanminus :
Это здорово, просто чтобы установить вещи. Он не предоставляет ни одной из более сложных функций CPAN или CPANPLUS, поэтому его легко использовать, если вы знаете, какой модуль вы хотите установить. Если вы еще не получили cpanminus, просто наберите:
установить его.
Также возможно установить его вообще без использования cpan. Основная процедура начальной загрузки:
Для получения дополнительной информации перейдите на страницу App :: cpanminus и посмотрите раздел по установке.
источник
cpan
для установкиApp::cpanminus
немного странно. Обычные инструкции по установке включают в себя процедуру начальной загрузки, когда часть ее загружается из cpanmin.us и используется для установки остальных. Это позволяет избежать настройкиcpan
и создания (после этого) бесполезного.cpan
каталога.cpanminus
с терминала. Я считаю, чтоcpanm
лучше,cpan
потому что он не выводит журналы ошибок на экран, а сохраняет их во временных файлах журналов и дает путь в случае ошибок.Я заметил, что некоторые люди предлагают один запуск cpan под sudo. Раньше это было необходимо для установки в системный каталог, но современные версии оболочки CPAN позволяют настроить его для использования только sudo для установки. Это намного безопаснее, поскольку это означает, что тесты не запускаются от имени пользователя root.
Если у вас есть старая оболочка CPAN, просто установите новый cpan («установить CPAN»), и когда вы перезагрузите оболочку, она предложит вам настроить эти новые директивы.
В настоящее время, когда я работаю в системе со старым CPAN, первым делом я обновляю оболочку и настраиваю ее так, чтобы я мог выполнять большую часть своей работы cpan как обычный пользователь.
Кроме того, я настоятельно рекомендую пользователям Windows исследовать клубничный Perl . Это версия Perl, которая поставляется с предварительно настроенной оболочкой CPAN, а также с компилятором. Он также включает в себя некоторые трудно компилируемые модули Perl с их внешними зависимостями библиотеки C, в частности, XML :: Parser. Это означает, что вы можете делать то же самое, что и любой другой пользователь Perl, когда дело доходит до установки модулей, и вещи, как правило, «просто работают» гораздо чаще.
источник
install CPAN
отсюда?$sudo apt-get install cpan
?App::cpanminus
, это такая радость, чтобы использовать его. Филипп Поттер предлагает это в своем ответе здесь, и вы можете попробовать этот час. Ответ Оуэнса .Если вы работаете в Ubuntu и хотите установить предварительно упакованный модуль perl (например, geo :: ipfree), попробуйте следующее:
источник
Несколько человек упомянули утилиту cpan, но это больше, чем просто запуск оболочки. Просто дайте ему модули, которые вы хотите установить, и дайте ему работать.
Если вы не дадите ему никаких аргументов, он запустит оболочку CPAN.pm. Это работает на Unix, Mac и должно быть хорошо на Windows (особенно Strawberry Perl).
Есть несколько других вещей, которые вы можете сделать с помощью инструмента cpan. Вот краткое описание текущих функций (которые могут быть новее, чем те, которые поставляются с CPAN.pm и perl):
источник
sudo perl -MCPAN -e 'install Foo'
источник
Также смотрите Да, даже вы можете использовать CPAN . Он показывает, как вы можете использовать CPAN без доступа root или sudo.
источник
Отто сделал хорошее предложение . Это работает и для Debian, как и для любой другой производной Debian. Недостающая часть - что делать, когда поиск в apt-cache не находит ничего.
Тогда всякий раз, когда у вас есть случайный модуль, вы хотите установить:
Это даст вам пакет deb, который вы можете установить, чтобы получить Some :: Random :: Module. Одним из больших преимуществ здесь являются страницы руководства и примеры сценариев в дополнение к самому модулю, который будет размещен в выбранном вами дистрибутиве. Если дистрибутив выпускает официальный пакет для более новой версии Some :: Random :: Module, он будет автоматически установлен при обновлении apt-get.
источник
Уже ответил и принял ответ - но все равно:
ИМХО самый простой способ установки модулей CPAN (в системах, подобных unix, и не имеющих представления о вдовах):
Выше описана установка "установщика CPAN-модулей нулевой конфигурации"
cpanm
. (Установка может занять несколько минут - не прерывайте процесс)а после - просто:
источник
Много рекомендаций для
CPAN.pm
, и это здорово, но если вы используете,Perl 5.10
то у вас также есть доступ кCPANPLUS.pm
чему-то вроде,CPAN.pm
но лучше.И, конечно, он доступен
CPAN
для людей, все еще использующих более старые версии Perl. Почему бы не попробовать:источник
Часто случается, что команда cpan install завершается неудачно с сообщением типа «make test вернул плохой статус, не установит без силы»
В этом случае следующий способ установки модуля:
источник
В Ubuntu большинство модулей Perl уже упакованы, поэтому установка происходит намного быстрее, чем в большинстве других систем, которые приходится компилировать.
Foo::Bar
Например, чтобы установить в командной строке, просто выполните:К сожалению, не все модули следуют этому соглашению об именах.
источник
Даже это должно работать:
источник
Используйте команду cpan как
cpan Modulename
Для установки зависимостей автоматически следуйте приведенным ниже инструкциям.
Я предпочитаю App :: cpanminus , он устанавливает зависимости автоматически. Просто сделать
источник
2 способа, которые я знаю:
ИСПОЛЬЗОВАНИЕ PPM:
С Windows (ActivePerl) я использовал ppm
из командной строки введите ppm. По приглашению ppm ...
или
чтобы получить список доступных модулей foo. Введите help для всех команд
ИСПОЛЬЗУЯ CPAN:
Вы также можете использовать CPAN следующим образом ( * nix системы ):
получает вам подсказку
по быстрому ...
введите h, чтобы получить список команд для cpan
источник
На Fedora вы можете использовать
до тех пор, пока Fedora имеет существующий пакет для модуля.
источник
На
Fedora Linux
илиEnterprise Linux
,yum
также треки библиотека Perl зависимостей. Таким образом, если модуль perl доступен, и какой-то пакет rpm экспортирует эту зависимость, он установит нужный вам пакет.(скорее всего, Perl-шоколадно-бельгийский пакет или даже пакет ChocolateFactory)
источник
Самый простой способ для меня это:
а) автоматическое рекурсивное обнаружение / разрешение / установка зависимостей
б) это оболочка, хорошая для скриптов установки
источник
Если вы хотите поместить новый модуль в нестандартное место, в котором ваша оболочка cpan не настроена для использования, возможно, вам пригодится следующее.
источник
Иногда вы можете использовать
yum search foo
для поиска относительного модуля Perl, а затем использоватьyum install xxx
для установки.источник
Безопасное решение
Во многих ответах упоминается использование
cpan
утилиты (которая используетCPAN.pm
) без слов о безопасности. По умолчаниюCPAN
2.27 и более ранниеurllist
версии настраивают использование URL-адреса http (а именно, http://www.cpan.org/ ), который разрешает атаки MITM, поэтому небезопасен. Это то, что используется для загрузкиCHECKSUMS
файлов, поэтому его необходимо заменить на безопасный URL-адрес (например, https://www.cpan.org/ ).Таким образом, после запуска cpan и принятия конфигурации по умолчанию, вам нужно изменить сгенерированный
MyConfig.pm
файл (выводится полный путь) следующим образом. замещатьпо
Примечание: https не достаточно; Вам также нужен веб-сайт, которому вы можете доверять. Так что будьте осторожны, если хотите выбрать какое-нибудь произвольное зеркало.
Тогда вы можете использовать
cpan
обычным способом.Мой отчет об ошибке на rt.cpan.org о небезопасном URL.
источник
https://www.cpan.org/
).В Windows с дистрибутивом Perl ActiveState используйте команду ppm .
источник
Простое выполнение
cpan Foo::Bar
в оболочке будет служить цели.источник
Похоже, вы уже получили свой ответ, но я решил, что я буду вмешиваться. Это то, что я делаю в некоторых скриптах на Ubuntu (или сервере Debian)
Это хорошо работает для меня, может быть, здесь есть что-то, что вы можете использовать.
источник