如何安装 Perl 模块 Crypt::OpenSSL::AES?

如何安装 Perl 模块 Crypt::OpenSSL::AES?

几天来,我一直在绞尽脑汁尝试让旧版 Perl 脚本在 apache2 服务器中以 cgi 形式运行。它需要 Crypt::OpenSSL::AES。来自 Apache 错误日志:

Can't locate Crypt/OpenSSL/AES.pm in @INC

最简单的方法是使用 ubuntu 软件包来安装它,但我找不到任何包含正确文件的软件包。以下返回的内容为空:

apt-file search AES.pm

作为普通用户,我已经安装了 cpan 并使用它来安装 perl 模块,以便 Crypt::OpenSSL::AES安装在我的用户目录下/home/user/.cpan/build/Crypt-OpenSSL-AES-0.02-H74J64/lib。不幸的是,无论我手动将 AES.pm 复制到其正确位置(/usr/local/lib/perl/5.10.1/...按照@INC)还是在 apache2 配置文件中添加 PERL5LIB 环境变量(SetEnv PERL5LIB /home/user/.cpan/build/Crypt-OpenSSL-AES-0.02-H74J64/lib),错误日志现在都显示缺少共享对象:

Can't locate loadable object for module Crypt::OpenSSL::AES in @INC 

错误信息与第一个有细微的不同(我一开始没有注意到):现在它找到 AES.pm,但还有另一个依赖项,未指定“可加载对象”,我不知道是哪一个。Openssl 已安装在我的系统上。

所以:

一般来说,在 Linux-ubuntu 系统上,安装 perl 模块以与 apache2 服务器一起工作的正确方法是什么?(我搜索了一下,这个问题有很多答案,但仍然不起作用)。

具体来说,我如何才能正确满足我的 cgi perl 应用程序对 Crypt::OpenSSL::AES 的依赖?

答案1

我解决了我的问题:

  1. 安装包

    Debian 和 Ubuntu

    aptitude install libssl-dev
    

    CentOS 或 Fedora

    yum install -y openssl-devel`
    
  2. 手动编译模块

    sudo cpan Crypt/OpenSSL/AES.pm
    

答案2

Ubuntu 存储库中通常会有 *-dev 软件包,供开发人员和管理员构建其他软件。因此,仅用于运行程序的软件包体积会更小。

答案3

你应该看看http://debian.pkgs.cpan.org/。它为您提供了一种从 CPAN 包生成您自己的 .deb 文件的方法。您可以尝试直接使用他们预先打包的文件,但请注意,由于它们所针对的 Debian 机器与您所使用的 Ubuntu 版本之间的差异,它们可能会崩溃:“这里有龙。”

答案4

如何使用dh-make-perl(创建包https://wiki.debian.org/PerlFAQ)?有点太晚了,但可能会对某些人有帮助。

相关内容