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

VirtualBox Linux虚拟机opam init运行失败:无法创建临时文件问题求助

opam init执行curl报错退出码23解决方案

问题原因确认

curl退出码23属于写入目标文件失败,经排查确认是curl无法自动创建/tmp/下的多级临时目录导致,以下是3种可行解决方案:


解决方案

方案1:修改opam临时目录(最便捷)

opam支持通过环境变量自定义临时存储路径,替换默认的/tmp路径规避权限问题:

# 在家目录下创建专属临时目录,确保你有完整读写权限
mkdir -p ~/.opam-tmp
# 配置环境变量指定opam使用该目录作为临时目录
export OPAMTMP=~/.opam-tmp
# 重新执行opam init命令
opam init

方案2:给opam配置curl默认携带--create-dirs参数

方式A:全局配置(永久生效)

编辑~/.opamrc文件(不存在则新建),添加如下配置:

download-command: "curl --create-dirs --write-out %{http_code} --retry 3 --retry-delay 2 --user-agent opam/2.1.0 -L -o %{out} %{url}"

配置完成后直接执行opam init即可生效。

方式B:单次命令生效

执行opam init时直接指定下载命令参数:

opam init --download-command 'curl --create-dirs --write-out %{http_code} --retry 3 --retry-delay 2 --user-agent opam/2.1.0 -L -o %{out} %{url}'

方案3:排查snap版curl的沙箱限制

你当前使用的是snap安装的curl,snap应用默认自带沙箱权限限制,可能无法访问/tmp下第三方程序创建的目录:

  • 卸载snap版curl:sudo snap remove curl
  • 安装系统原生curl:Debian/Ubuntu系执行sudo apt install curl,其他发行版对应使用yum/dnf等包管理器安装即可
  • 完成后重新执行opam init

内容的提问来源于stack exchange,提问作者Motorhead

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 01:09:00