mac 手工安装OpenSSL 3.4.0

如果你希望继续安装 `openssl-3.4.0` 而不是降级到 `3.1.1`,可以尝试以下解决方案。根据你提供的错误信息,问题可能出在测试阶段(`make test`),我们可以尝试跳过测试或修复测试失败的原因。


**解决方案:安装 `openssl-3.4.0`**

**1. 清理之前的安装尝试**

在重新安装之前,确保清理之前失败的安装:

```bash

brew uninstall openssl@3

brew cleanup

rm -rf /Users/houlin/Library/Caches/Homebrew/downloads/4b9ac0aabfe9267c004998b875217f5034f92ff065771f7cf3e1c1552645c67f--openssl-3.4.0.tar.gz

```


**2. 手动下载并安装 `openssl-3.4.0`**

**步骤 1:下载 `openssl-3.4.0`**

访问 [OpenSSL 官方下载页面](https://www.openssl.org/source/) 下载 `openssl-3.4.0.tar.gz`,或者直接使用以下命令下载:

```bash

curl -O https://www.openssl.org/source/openssl-3.4.0.tar.gz

```

**步骤 2:解压缩文件**

解压下载的文件:

```bash

tar -xzf openssl-3.4.0.tar.gz

cd openssl-3.4.0

```

**步骤 3:配置编译选项**

运行以下命令配置 OpenSSL:

```bash

perl ./Configure --prefix=/usr/local/Cellar/openssl@3/3.4.0 --openssldir=/usr/local/etc/openssl@3 no-ssl3 no-ssl3-method no-zlib darwin64-x86_64-cc enable-ec_nistp_64_gcc_128

```

  • `--prefix`:指定安装路径。

  • `--openssldir`:指定 OpenSSL 配置文件路径。

  • `no-ssl3` 和 `no-ssl3-method`:禁用不安全的 SSLv3 协议。

  • `darwin64-x86_64-cc`:指定 macOS 平台和编译器。

  • `enable-ec_nistp_64_gcc_128`:启用优化的椭圆曲线算法。

**步骤 4:编译 OpenSSL**

运行以下命令编译 OpenSSL:

```bash

make

```

**步骤 5:跳过测试(可选)**

如果 `make test` 失败,可以跳过测试直接安装:

```bash

sudo make install

```

如果你希望运行测试,可以使用以下命令:

```bash

make test

```

如果测试失败,可以检查日志文件 `/Users/houlin/Library/Logs/Homebrew/openssl@3/04.make` 以获取更多信息。

**步骤 6:验证安装**

安装完成后,验证 OpenSSL 版本:

```bash

/usr/local/Cellar/openssl@3/3.4.0/bin/openssl version

```

输出应为:

```

OpenSSL 3.4.0

```


**3. 配置环境变量**

确保系统使用新安装的 OpenSSL 版本,而不是系统自带的旧版本。编辑你的 Shell 配置文件(如 `~/.zshrc` 或 `~/.bashrc`),添加以下内容:

```bash

export PATH="/usr/local/Cellar/openssl@3/3.4.0/bin:$PATH"

export LDFLAGS="-L/usr/local/Cellar/openssl@3/3.4.0/lib"

export CPPFLAGS="-I/usr/local/Cellar/openssl@3/3.4.0/include"

export PKG_CONFIG_PATH="/usr/local/Cellar/openssl@3/3.4.0/lib/pkgconfig"

```

然后运行以下命令使配置生效:

```bash

source ~/.zshrc # 或者 source ~/.bashrc

```


**4. 链接 OpenSSL(可选)**

如果你使用 Homebrew,可以运行以下命令将 OpenSSL 链接到系统:

```bash

brew link --force openssl@3

```


**5. 验证安装**

运行以下命令验证 OpenSSL 是否安装成功:

```bash

which openssl

openssl version

```

输出应为:

```

/usr/local/Cellar/openssl@3/3.4.0/bin/openssl

OpenSSL 3.4.0

```


**6. 如果仍然遇到问题**

如果仍然遇到问题,可以尝试以下方法:

  1. **检查依赖**:

确保系统中安装了必要的依赖,如 `perl` 和 `make`:

```bash

brew install perl make

```

  1. **检查编译器**:

确保你使用的是正确的编译器(如 `clang`)。运行以下命令检查:

```bash

cc --version

```

  1. **查看日志**:

如果安装失败,查看日志文件以获取更多信息:

```bash

cat /Users/houlin/Library/Logs/Homebrew/openssl@3/04.make

```

  1. **降级到 3.1.1**:

如果问题仍然无法解决,可以按照你提供的解决方案降级到 `openssl-3.1.1`。


通过以上步骤,你应该能够成功安装 `openssl-3.4.0`。如果问题仍然存在,请提供更多错误信息,我会进一步帮助你解决!

相关推荐
智者知已应修善业11 分钟前
【编写函数求表达式的值】2024-4-3
c语言·c++·经验分享·笔记·算法
田里的水稻18 分钟前
C++_python_相互之间的包含调用方法
c++·chrome·python
HABuo31 分钟前
【Linux进程(四)】进程切换&环境变量深入剖析
linux·运维·服务器·c语言·c++·ubuntu·centos
工口发动机39 分钟前
ABC440DEF简要题解
c++·算法
带土11 小时前
4. C++ static关键字
开发语言·c++
橘颂TA1 小时前
【Linux】死锁四条件的底层逻辑:从锁冲突到 STL 组件的线程安全实践(Ⅵ)
linux·运维·服务器·c++·死锁
C++ 老炮儿的技术栈1 小时前
什么是通信规约
开发语言·数据结构·c++·windows·算法·安全·链表
云泽8082 小时前
C++ STL 容器深度解析:deque 结构剖析与 priority_queue 的核心原理及模拟实现
开发语言·c++
码农小韩2 小时前
基于Linux的C++学习——动态数组容器vector
linux·c语言·开发语言·数据结构·c++·单片机·学习
hui函数2 小时前
如何解决 pip install 编译报错 g++: command not found(缺少 C++ 编译器)问题
开发语言·c++·pip