【C++】CentOS环境搭建-升级 OpenSSL
- 下载 OpenSSL 源代码
- 解压源代码
- 进入源代码目录
- 配置编译选项
- 报错Can't locate IPC/Cmd.pm in @INC (@INC contains: /usr/local/openssl-3.3.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /usr/local/openssl-3.3.0/external/perl/Text-Template-1.56/lib) at /usr/local/openssl-3.3.0/util/perl/OpenSSL/config.pm line 19.
- 编译和安装
- 更新环境变量:
- 更新环境
检查 OpenSSL 版本:
首先,检查你系统上安装的 OpenSSL 版本。在终端中运行以下命令:
bash
openssl version
如果版本低于 1.1.1,你需要升级 OpenSSL。
升级 OpenSSL:
如果你的 OpenSSL 版本低于 1.1.1,你需要升级它。这通常涉及到安装新版本的 OpenSSL,并且可能需要编译安装,因为 CentOS 的默认软件仓库中可能不包含最新版本。
你可以尝试使用 CentOS 的软件源(如 EPEL 或其他第三方源)查找更新版本的 OpenSSL,或者从 OpenSSL 官方网站下载源代码并编译安装。
编译安装 OpenSSL 的基本步骤可能如下:
bash
下载 OpenSSL 源代码
cd /usr/local/
wget https://www.openssl.org/source/openssl-3.3.0.tar.gz
解压源代码
tar -xzvf openssl-3.3.0.tar.gz
进入源代码目录
cd openssl-3.3.0
配置编译选项
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
报错Can’t locate IPC/Cmd.pm in @INC (@INC contains: /usr/local/openssl-3.3.0/util/perl /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /usr/local/openssl-3.3.0/external/perl/Text-Template-1.56/lib) at /usr/local/openssl-3.3.0/util/perl/OpenSSL/config.pm line 19.
问题原因:这个错误表明 Perl 脚本在尝试加载 IPC/Cmd.pm 模块时失败了,因为它在 @INC 数组列出的目录中没有找到这个模块。@INC 数组包含了 Perl 解释器搜索模块时所使用的目录列表。
IPC/Cmd.pm 是 Perl 的一个标准库模块,它提供了一些用于执行外部命令的接口。如果这个模块缺失,那么可能是因为 Perl 的安装不完整,或者环境配置有问题。
yum install perl-IPC-Cmd
安装这个包就解决问题了
编译和安装
make
sudo make install
注意:编译安装 OpenSSL 可能会覆盖系统默认的 OpenSSL,这可能会影响依赖旧版本的其他软件。务必谨慎操作,并在必要时备份你的系统。
更新环境变量:
编辑您的 shell 配置文件(~/.bash_profile),并添加以下行:
export LD_LIBRARY_PATH=/usr/local/openssl/lib64:$LD_LIBRARY_PATH
export CPATH=/usr/local/openssl/include:$CPATH
export LIBRARY_PATH=/usr/local/openssl/lib64:$LIBRARY_PATH
更新环境
mv /usr/bin/openssl bak.openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
source ~/.bash_profile