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`。如果问题仍然存在,请提供更多错误信息,我会进一步帮助你解决!

相关推荐
为何创造硅基生物29 分钟前
独占指针的创建std::make_unique 本身自带堆出现
c++
kyle~41 分钟前
ROS 2 与 Isaac Sim 联合仿真(一)体系架构、环境选型与基础通信闭环
c++·机器人·nvidia·仿真·ros2
努力努力再努力wz1 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
八解毒剂1 小时前
数据结构-平衡二叉树——对二叉搜索树的优化
数据结构·c++·算法
起床困难户5752 小时前
条款20:协助完成返回值优化
c++
啦啦啦啦啦zzzz2 小时前
算法总结(二分查找、双指针)
c++·算法
不负岁月无痕3 小时前
C++ 模板核心内容与高频面试题汇总
java·开发语言·c++
无限进步_4 小时前
从零实现一个迷你Shell——深入理解Linux命令行解释器
linux·运维·服务器·开发语言·c++·chrome
fpcc4 小时前
工具使用——CMake中的函数和宏
c++·cmake
乐观勇敢坚强的老彭5 小时前
C++信息学奥赛lesson1
java·开发语言·c++