Как мне сказать CPAN для установки всех зависимостей?
90387 просмотра
10 ответа
Как мне сказать CPAN для установки всех зависимостей?
Я попытался установить их в cpan
:
cpan> o conf prerequisites_policy follow
cpan> o conf commit
Мне все еще приходилось отвечать «у» пару раз (но меньше, чем раньше).
Есть ли способ заставить его всегда идти вперед и устанавливать? Я хочу сделать это без присмотра.
Казалось бы, я хочу, чтобы флаг всегда доверял CPAN, чтобы делать правильные вещи, и если он предлагает ответ, я хотел бы следовать ему (всегда нажимать, Enterкогда он что-то спрашивает).
Автор: Nifle Источник Размещён: 12.11.2019 09:23Ответы (10)
29 плюса
Вот одна строка, делающая эти изменения постоянными, включая автоматическую первоначальную конфигурацию CPAN:
perl -MCPAN -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
Или объедините его с local::lib
модулем для непривилегированных пользователей:
perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
Запустите его перед использованием оболочки CPAN или чего-либо еще.
Автор: Atento Размещён: 12.02.2014 06:1881 плюса
Попробуйте установить PERL_MM_USE_DEFAULT следующим образом:
PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'install My::Module'
Это должно заставить CPAN отвечать по умолчанию на все запросы.
Автор: kbosak Размещён: 10.06.2009 08:3354 плюса
Последний и лучший ответ на этот вопрос - использовать cpanm
вместо этого (также называемый App :: cpanminus или cpanminus)!
ОПИСАНИЕ
cpanminus - это скрипт для получения, распаковки, сборки и установки модулей из CPAN и больше ничего не делает.
Он свободен от зависимостей (может самозагрузиться), не требует настройки и стоит отдельно. При работе требуется только 10 МБ оперативной памяти.
Для начальной загрузки установите его:
curl -L http://cpanmin.us | perl - --sudo App::cpanminus
или если вы используете perlbrew
просто
perlbrew install-cpanm
или из самого cpan:
cpan install App::cpanminus
С этого момента установите модули, выполнив (как root, если необходимо)
cpanm Foo::Bar
Автор: Joel Berger
Размещён: 31.10.2011 02:09
28 плюса
Вот что я уверен, что вы ищете:
cpan> o conf prerequisites_policy follow
cpan> o conf commit
Автор: Mark C
Размещён: 18.12.2009 11:24
27 плюса
Изменение следующего параметра поверх prerequisites_policy следует.
cpan> o conf prerequisites_policy 'follow'
cpan> o conf build_requires_install_policy yes
cpan> o conf commit
Это изменит его с «спросить / да» на «да» и прекратит спрашивать вас.
Автор: sdf Размещён: 14.01.2010 04:206 плюса
Возможно, это связано с используемыми ExtUtils :: AutoInstall или Module :: AutoInstall . Попробуйте установить переменную окружения PERL_AUTOINSTALL. (См. Документацию этих модулей.)
Автор: tsee Размещён: 22.05.2009 06:416 плюса
Установлен
prerequisites_policy
в конфигурации.
См. Переменные конфигурации .
Автор: Sinan Ünür Размещён: 22.05.2009 04:523 плюса
Лично я только пару раз пытался изменить настройки таким образом, и на самом деле мне было проще попасть в CPAN.pm
оболочку, не давая cpan
аргументов, а затем настраивая CPAN.pm
из интерактивного приглашения:
$ cpan
cpan> o conf init
Это CPAN.pm
запустит утилиту настройки интерфейсов. Просто пройдите по нему и укажите «следовать», где вам нужно (я забыл вопрос не по порядку), и вам будет хорошо идти.
3 плюса
На мой взгляд, это самый быстрый и надежный способ установки модулей CPAN:
yes | perl -MCPAN -e "CPAN::Shell->notest(qw!install Your::Module!)"
Автор: Vladimir Marchenko
Размещён: 29.07.2015 02:08
1 плюс
Я пишу это для пользы людей, которые, возможно, пришли на эту страницу в поисках способа установки всех зависимостей модуля, необходимых для конкретного сценария perl. Я написал сценарий для этого:
Это должно быть запущено как ./installdep.pl yourscript.pl
#!/usr/bin/perl
`sudo apt install cpanminus`;
while (<>) {
if (/USE /i)
{
my $line=$_;
$line=~ s/\s//g;
$line=~ /^(.*)\./;
$line=~ s/\;//;
$line=~s/^USE//i;
$line=~s/lib.*//i;
$line=~s/feature.*//i;
$line=~s/strict//i;
$line=~s/warnings//i;
$line =~ s/^(.*)\(.*/$1/;
unless ($line eq '') {
my $cmd='sudo cpanm '.$line;
print "Installing $line \n";
open my $cmd_fh, "$cmd |";
while (<$cmd_fh>) {
print "$_";
}
close $cmd_fh;
print "\n";
}
}
}
Это будет использовать cpanminus для установки всех зависимостей модуля, требуемых вашим скриптом. Если cpanm не установлен, он установит его.
Автор: Joel G Mathew Размещён: 02.08.2017 07:48Вопросы из категории :
- perl Как определить, имеет ли переменная число в Perl?
- perl Как я могу проверить STDIN без блокировки в Perl?
- perl Как выполнить подстановку Perl для строки, сохранив оригинал?
- perl Какой самый простой способ установить отсутствующий модуль Perl?
- perl Что происходит с Perl 6?
- perl Как запустить интерактивную консоль для Perl?
- dependencies Генерация зависимостей GCC для другого выходного каталога
- dependencies Определение манифеста обнаруженной сборки не соответствует ссылке на сборку
- dependencies Как мне сделать так, чтобы Makefile автоматически перестраивал исходные файлы, которые содержат измененный заголовочный файл? (В C / C ++)
- dependencies генерировать зависимости для make-файла для проекта на C / C ++
- dependencies Плющ: как удалить транзитивные зависимости?
- dependencies График зависимостей проектов Visual Studio
- cpan Как я могу использовать новый модуль Perl без разрешения на установку?
- cpan Как я могу установить модуль CPAN в локальный каталог?
- cpan How can I install Perl module without using CPAN.pm?
- cpan Как мне сказать CPAN для установки всех зависимостей?
- cpan Как обновить все мои модули CPAN до их последних версий?