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

相关推荐
承渊政道几秒前
【贪心算法】(经典实战应用解析(六):整数替换、俄罗斯套娃信封问题、可被三整除的最⼤和、距离相等的条形码、重构字符串)
c++·算法·leetcode·贪心算法·排序算法·动态规划·哈希算法
宠..1 分钟前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
闻缺陷则喜何志丹9 分钟前
【图论 树 启发式合并】P7165 [COCI2020-2021#1] Papričice|普及+
c++·算法·启发式算法·图论··洛谷
alexwang21110 分钟前
AT_abc458_d [ABC458D] Chalkboard Median题解
c++·算法·题解·atcoder
故事和你9111 分钟前
洛谷-【图论2-4】连通性问题1
开发语言·数据结构·c++·算法·动态规划·图论
我先去打把游戏先19 分钟前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu
艾莉丝努力练剑24 分钟前
【Linux网络】Linux 网络编程:HTTP(四)从手写服务器到生产级 Nginx 与 cpp-httplib 实战
linux·运维·服务器·网络·c++·nginx·http
咩咦32 分钟前
C++学习笔记21:日期类加减天数
c++·学习笔记·运算符重载·日期类·operator+·operator+=
努力努力再努力wz33 分钟前
【QT入门系列】QWidget 六大常用属性详解:windowOpacity、cursor、font、focus、toolTip 与 styleSheet
android·开发语言·数据结构·c++·qt·mysql·算法
少司府34 分钟前
Tools相关:深入浅出学Git
大数据·c++·git·gitee·github·仓库·分支