как связать PerlIO пакет Perl без "установки" - PullRequest
0 голосов
/ 30 января 2012

Я пытаюсь добавить пакет PerlIO :: eol как часть моего проекта, не устанавливая его, таким образом, все зависимости могут быть упакованы с моим сценарием без необходимости переустанавливать их на каждом компьютере.Как я могу сделать это для PerlIO :: eol Я не понимаю структуру и где важные файлы

Ответы [ 2 ]

3 голосов
/ 30 января 2012

Создайте подкаталог inc и переместите туда распакованный дистрибутив PerlIO-eol. Затем используйте что-то подобное в Build.PL:

вашего проекта
use Config qw(%config);
use Module::Build qw();

my $build = Module::Build->subclass(code => q(sub ACTION_inc2blib {
    my ($self) = @_;
    chdir 'inc/PerlIO-eol';
    system $^X, 'Makefile.PL';
    system $Config{make};
    chdir '../..';
}))->new(
    module_name     => 'Foo::Bar',
    license         => 'restrictive',
    dist_abstract   => 'blah',
);

$build->dispatch('inc2blib');
$build->create_build_script;

Затем в вашей основной программе use blib 'inc/PerlIO-eol';.


Но это BFI , вам просто нужно настроить PerlIO :: eol как зависимость времени выполнения в метафайле вашего проекта дистрибутива и установить его нормально.

1 голос
/ 30 января 2012

Зависит от того, на каких машинах вы планируете его установить. Если все они имеют одинаковую операционную систему (и одинаковые версии библиотек и Perl и т. Д.), Это может быть возможно. Если нет, вам нужно заранее скомпилировать модуль для каждой планируемой платформы (он содержит несколько файлов .xs).

...