Mac M1安装SDKMAN失败:执行curl命令遇退出码56错误求助
解决M1 Mac安装SDKMAN时curl exit code 56错误
可能的原因及解决步骤
1. 排查网络代理干扰
- 关闭全局代理、VPN等工具,这类工具常导致curl无法正常连接SDKMAN服务器
- 执行命令查看当前代理环境变量:
echo $http_proxy $https_proxy - 若有输出,临时清空代理:
之后重新运行安装命令unset http_proxy https_proxy
2. 调整DNS解析设置
M1 Mac的DNS解析异常可能引发该问题,尝试切换公共DNS:
- 打开「系统设置」-「网络」- 选中当前网络(Wi-Fi/以太网)-「详细信息」-「DNS」
- 添加
8.8.8.8和8.8.4.4到DNS服务器列表并移至顶部 - 刷新DNS缓存:
完成后重新运行安装命令sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
3. 手动修改安装脚本参数
如果默认脚本的curl参数无法正常工作,手动下载并调整:
- 下载安装脚本:
curl -O https://get.sdkman.io - 用文本编辑器打开脚本,找到包含
SDKMAN_CANDIDATES_CSV=$(curl -s "${SDKMAN_SERVICE}/candidates/all")的行 - 将
-s替换为-v -L(开启 verbose 输出和自动重定向),保存修改 - 运行修改后的脚本:
bash get.sdkman.io
4. 排除oh-my-zsh环境干扰
- 临时禁用oh-my-zsh自定义配置,重命名配置文件:
mv ~/.zshrc ~/.zshrc.bak - 重启终端(此时zsh使用默认配置),重新运行安装命令
- 安装完成后恢复原配置:
mv ~/.zshrc.bak ~/.zshrc
5. 手动补全SDKMAN初始化
如果安装脚本已完成大部分步骤,仅候选包获取失败:
- 加载SDKMAN环境:
source "$HOME/.sdkman/bin/sdkman-init.sh" - 手动更新候选包列表:
sdk update
内容的提问来源于stack exchange,提问作者AKFourSeven
相关产品推荐
相关产品推荐

