Не удается установить Linux :: Inotify2 на FreeBSD - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь установить Inotify2 на freeBSD, но шаг теста выдает ошибку.

cpan install Linux::Inotify2

Выдает следующую ошибку:

root@freebsd12sabin:~/.cpan/build/Linux-Inotify2-2.1-6 # make test
"/usr/local/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Inotify2.bs blib/arch/auto/Linux/Inotify2/Inotify2.bs 644
PERL_DL_NONLAZY=1 "/usr/local/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00_load.t ..... Can't load '/root/.cpan/build/Linux-Inotify2-2.1-6/blib/arch/auto/Linux/Inotify2/Inotify2.so' for module Linux::Inotify2: /root/.cpan/build/Linux-Inotify2-2.1-6/blib/arch/auto/Linux/Inotify2/Inotify2.so: Undefined symbol "inotify_init" at /usr/local/lib/perl5/5.30/mach/DynaLoader.pm line 193.
 at /root/.cpan/build/Linux-Inotify2-2.1-6/blib/lib/Linux/Inotify2.pm line 97.
BEGIN failed--compilation aborted at /root/.cpan/build/Linux-Inotify2-2.1-6/blib/lib/Linux/Inotify2.pm line 97.

Есть лив любом случае я могу продолжить?

Ответы [ 3 ]

2 голосов
/ 15 октября 2019

Вам необходимо использовать альтернативы, которые работают в ОС.

1 голос
/ 15 октября 2019

На самом деле, есть библиотека devel/libinotify, которая реализует интерфейс inotify во FreeBSD через kevent API. Таким образом, возможно создание этого расширения.

Если вы попали на этап Undefined symbol "inotify_init", остается только установить пакет libinotify, а затем добавить соответствующий флаг -l для командной строки сборки. Я не знаком с системой сборки Perl, поэтому не могу посоветовать, как это сделать.

0 голосов
/ 15 октября 2019

Inotify - это специфичный для Linux API. Вы не можете использовать его во FreeBSD (или любой другой ОС, не использующей ядро ​​Linux), потому что это ядро ​​не предоставляет эти системные вызовы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...