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

相关推荐
Ljwuhe15 分钟前
C++——多态
开发语言·c++
越甲八千1 小时前
STL stack为何没有迭代器
c++
从零开始的代码生活_2 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸2 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
GIS阵地3 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
王维同学3 小时前
[原创][Windows C++]LSA 认证、安全与通知包的注册表枚举
c++·windows·安全
程序员Rock4 小时前
上位机开发-MODBUS面试常见问题
c语言·c++·面试·职场和发展·上位机
_wyt0014 小时前
完全背包问题详解
c++·背包dp
皓月斯语6 小时前
B3842 [GESP202306 三级] 春游 题解
数据结构·c++·算法·题解
CedarQR7 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json