在使用 brew
安装 OpenSSL 时遇到如下错误:
==> perl ./Configure --prefix=/data2/lx/.local/opt/homebrew/Cellar/openssl@3/3.4.0 --openssldir=/data2/lx/.local/opt/homebrew/etc/openssl@3 --libdir=lib no-ssl3 no-ssl3-method no-zlib
Last 15 lines from /data2/lx/.cache/Homebrew/Logs/openssl@3/10.perl:
perl
./Configure
--prefix=/data2/lx/.local/opt/homebrew/Cellar/openssl@3/3.4.0
--openssldir=/data2/lx/.local/opt/homebrew/etc/openssl@3
--libdir=lib
no-ssl3
no-ssl3-method
no-zlib
linux-x86_64
Can't locate IPC/Cmd.pm in @INC (@INC contains: /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/util/perl /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/lib/perl5/x86_64-linux-thread-multi /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/external/perl/Text-Template-1.56/lib) at /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/util/perl/OpenSSL/config.pm line 19.
BEGIN failed--compilation aborted at /tmp/opensslA3-20241111-16390-5z00hd/openssl-3.4.0/util/perl/OpenSSL/config.pm line 19.
Compilation failed in require at ./Configure line 23.
BEGIN failed--compilation aborted at ./Configure line 23.
这个错误表明在构建 openssl@3
时,Perl 脚本 ./Configure
无法找到 IPC::Cmd
模块。需要注意的是这里 brew
使用了系统的 perl
来执行 ./Configure
脚本,也就是说系统的 perl
没有安装 IPC::Cmd
模块。如果你有 root 权限的话可以使用系统的包管理工具安装该模块。如果没有 root 权限,那么就要想办法让 brew
使用安装了该模块的 perl
来执行 ./Configure
命令。
-
首先克隆 homebrew/core 库:
brew tap --force homebrew/core cd "$(brew --repo homebrew/core)" && git fetch --unshallow
-
编辑 OpenSSL 安装脚本(formula):
brew edit openssl@3
在其中找到
def install
函数,并在函数开头添加如下代码:ENV["PERL"] = "#{Formula["perl"].opt_bin}/perl"