You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Monterey 12.3.1下curl依赖libssl.1.0.0.dylib缺失问题求助

解决macOS Monterey下curl依赖libssl.1.0.0.dylib缺失问题

错误根源

你的问题包含两个连锁错误:

  1. /opt/local/bin/curl依赖的旧版本OpenSSL库libssl.1.0.0.dylib已不存在(当前系统安装的是更高版本的OpenSSL)
  2. curl执行失败后无输出,导致json_pp处理空字符串时抛出JSON格式错误

解决方案

方案1:修复MacPorts安装的curl依赖

如果坚持使用MacPorts的curl,重新安装并让它链接到当前系统的OpenSSL版本:

# 更新MacPorts仓库
sudo port selfupdate
# 卸载旧版curl
sudo port uninstall curl
# 安装curl并指定链接OpenSSL 3(适配新版库)
sudo port install curl +openssl3
# 验证curl是否正常工作
/opt/local/bin/curl --version

执行后curl会使用当前安装的OpenSSL库,不再依赖旧的1.0.0版本。

方案2:改用系统自带的curl(最省心)

macOS自带的curl不依赖第三方OpenSSL库,直接修改脚本中的curl和json_pp为系统绝对路径:

# 替换脚本中的curl为系统自带路径
/usr/bin/curl -H "$token" -H "Content-Type: application/json" \
  --request POST --data-raw "{\"ECRN\": $arr, \"SCRN\":[]}" \
  $url | /usr/bin/json_pp

这样完全避开第三方库的依赖问题,无需额外安装。

方案3:优化脚本的JSON生成逻辑(避免后续格式错误)

你手动拼接JSON的逻辑容易出现引号转义错误,建议用jq工具来生成标准JSON:

  1. 安装jq:
sudo port install jq
  1. 替换脚本中的json_array函数和相关代码:
# 用jq生成JSON数组
arr=$(jq -n --args '$ARGS.positional' "${crn_list[@]}")
# 用jq生成完整的请求JSON体
request_body=$(jq -n --argjson ecrn "$arr" '{"ECRN": $ecrn, "SCRN": []}')

# 执行curl请求
/usr/bin/curl -H "$token" -H "Content-Type: application/json" \
  --request POST --data-raw "$request_body" \
  $url | /usr/bin/json_pp

这种方式能确保JSON格式完全正确,避免手动转义带来的问题。

内容的提问来源于stack exchange,提问作者Okan Zagor A.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:22:45