развертывание модуля xs на CPAN - PullRequest
0 голосов
/ 16 октября 2018

Я искал разные модули xs cpan, и они не содержали актуальный исходный код библиотеки, которую они связывают,

, например, для этой библиотеки https://st.aticpan.org/source/NANIS/Net-Sharktools-0.009/ модуль xs: https://st.aticpan.org/source/NANIS/Net-Sharktools-0.009/Sharktools.xs

имеет "#include" sharktools_core.h ", но если я просматриваю файлы в metacpan, я не нашел этот файл.

та же проблема с этим модулем: https://metacpan.org/pod/Crypt::OpenSSL::RSA .xs-файл содержит #include для различных файлов openssl, но файлы не включены в дистрибутив.

когда установлен такой xs-модуль, он включает заголовок и компилирует файлы C, если они естьне часть дистрибутива?

1 Ответ

0 голосов
/ 16 октября 2018

В этих дистрибутивах библиотеки будут доступны в системе, в которую они устанавливаются.Так, например, для Crypt :: OpenSSL :: RSA ожидается, что у вас установлен openssl-dev или эквивалентный пакет для вашей системы.Вариант для создания дистрибутива, который не требует этого, - это (отдельно) выпустить дистрибутив Alien , и самый простой способ сделать это сейчас - это Alien :: Build .Дистрибутив Alien представляет собой либо использование существующей установленной библиотеки, либо установку библиотеки в каталогах библиотеки Perl, в любом случае он доступен для использования в Perl.Например, Alien :: OpenSSL и Alien :: LibreSSL существуют и могут использоваться дистрибутивами, которые хотят убедиться, что библиотека SSL доступна.Ваш дистрибутив XS добавит дистрибутив Alien в качестве зависимости, а затем сможет использовать библиотеку через него.

...