使用C库依赖安装Perl模块
一些Perl模块具有特定的C库依赖关系,这些依赖关系需要满足,否则它们将无法安装。这些问题可能很难解决,因为CPAN无法自动安装或报告非Perl依赖,而Google也不擅长为这类问题提供有用的结果(例如Net::SSLeay是一个常见的难以安装的模块)。通常,您只能在尝试安装模块时发现缺少的依赖项,因为安装将失败。此时您需要做的是 识别 和 安装 缺少的C库。
识别C库依赖关系
以下是一些检查依赖关系的地方
- 安装错误信息 - 查看失败的安装命令行输出:通常Perl开发者会编写特定的错误信息来指示缺少的C库。
- 模块文档 - 检查metacpan上模块的主要POD页面,它可能指示需要哪些C库。
- 分发文件 - 检查随安装的模块一起提供的README和INSTALL文件。如果有的话,它们将在tarball的根目录中。您可以在metacpan上在线浏览这些文件,方法是在搜索模块后,点击模块主页面上的“浏览”链接。
- 搜索您的包管理器 - 查看与模块相关的技术和关键词。例如,Net::SSLeay可能与SSL有关,因此搜索与Perl相关的SSL包(以下是一个示例)。
安装C库依赖关系
一旦您已确定缺少的C库,您需要安装它们。如果您使用Linux,可以使用包管理器进行此操作,搜索包含C库的包并安装它
# yum package manager
$ sudo yum search ssl
...
sudo yum install openssl-perl.x86_64 perl-Net-SSLeay.x86_64 perl-Crypt-SSLeay.x86_64
如果您不在Linux上,尝试从C库的主页直接下载库 - 这些库很容易通过Google找到,通常有特定的Windows / OSX分发。
安装所需的库后,再次尝试使用CPAN安装Perl模块。
本文最初发表在PerlTricks.com。
标签
反馈
这篇文章有什么问题吗?请通过在GitHub上打开一个问题或拉取请求来帮助我们。