Perl не может найти встроенный модуль C: «Были проблемы с загрузкой встроенного модуля» - PullRequest
0 голосов
/ 21 июня 2019

Получение ошибки ниже при попытке запустить скрипт Perl.Скрипт из этого пакета: https://github.com/aquaskyline/LRSIM

$ perl simulateLinkedReads.pl
Had problems bootstrapping Inline module 'simulateLinkedReads_pl_4e0722f'

Can't locate loadable object for module simulateLinkedReads_pl_4e0722f in @INC (@INC contains: [some long path]/_Inline/lib /home/olavur/perl5/lib/perl5/5.22.1/x86_64-linux-gnu-thread-multi /home/olavur/perl5/lib/perl5/5.22.1 /home/olavur/perl5/lib/perl5/x86_64-linux-gnu-thread-multi /home/olavur/perl5/lib/perl5 /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.22.1 /usr/local/share/perl/5.22.1 /usr/lib/x86_64-linux-gnu/perl5/5.22 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22 /usr/share/perl/5.22 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base .) at /usr/local/share/perl/5.22.1/Inline.pm line 541.


at simulateLinkedReads.pl line 0.
INIT failed--call queue aborted.

Итак, он ищет simulateLinkedReads_pl_4e0722f «встроенный» модуль, и он, кажется, находится здесь:

[some long path]/_Inline/lib/auto/simulateLinkedReads_pl_4e0722f/simulateLinkedReads_pl_4e0722f.inl

И путь @INC содержит [some long path]/_Inline/lib.Если он не содержит [some long path]/_Inline/lib/auto?

Итак, я не знаю, произошла ли ошибка из-за моей установки Perl, моей установки / сборки пакета LRSIM или ошибки в исходном коде LRSIM.

Я полный дурак с Perl, но я попытался включить некоторую информацию о моей настройке Perl, здесь (обратите внимание, что есть два файла, "модули Perl" и "конфигурация Perl"): https://gist.github.com/olavurmortensen/00b2baa61399a5b7c39bca323dbf0233

Использование perl -V для некоторой информации о конфигурации и perl -e 'print qx/find $_ -name "*.pm"/ foreach ( @INC );' для установленных модулей.

Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ:

По предложению @melpomene я запустил strace -f -o trace.log perl LRSIM/simulateLinkedReads.pl и загрузил след здесь:

https://gist.github.com/olavurmortensen/eca66135486899beccf8610667241451

РЕДАКТИРОВАТЬ:

Обновлена ​​трассировка, поскольку она была неполной: https://gist.github.com/olavurmortensen/eca66135486899beccf8610667241451

1 Ответ

2 голосов
/ 21 июня 2019

Вокруг строки 24093 вашего strace журнала make говорится что-то о Clock skew detected. Может быть, проблема связана с файловой системой, в которой работает скрипт (/mnt/fargen/experiments/...)?

make полагается на точные метки времени, чтобы определить, какие файлы необходимо обновить, и запланировать свои действия. Если отметки времени неверны, файлы могут быть построены неправильно или не созданы вообще.


Причина, по которой make вообще задействован, заключается в том, что за сценой Inline::C извлекает встроенный код C и создает для него специальный модуль Perl, включая файл XS, Makefile.PL и весь механизм. Затем он вызывает perl Makefile.PL && make && make install, который должен создать файл .so и скопировать его в место, где его может загрузить perl (этот файл .so является загружаемым объектом , упомянутым в сообщении об ошибке) .

...