news 2026/11/6 0:16:33

get_download_file_path: command not found (asdf bug已解决)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
get_download_file_path: command not found (asdf bug已解决)

今天遇到一个特别奇怪的问题,前前后后折腾了差不多一个小时,走了不少弯路,最后发现是官方插件的 bug。把整个排查过程分享出来,希望能帮到遇到同样问题的朋友。
事情的起因是这样的。我有一个 Laravel 项目,一直用 asdf 来管理 PHP 版本。如果你不知道 asdf 是什么,简单说它就是一个通用的版本管理工具,类似于 nvm 管理 Node.js、pyenv 管理 Python,但 asdf 可以用一个工具管理几乎所有语言的版本,非常方便。

asdf install php 8.1.2

执行完这条命令后,屏幕上刷出了一堆信息,下载 PHP 源码什么的都挺正常,但最后报了两个错误:

/home/shen/.asdf/plugins/php/bin/install: line 10: get_download_file_path: command not found /home/shen/.asdf/plugins/php/bin/install: line 64: download_source: command not found


看到 command not found,我第一反应是不是 asdf 本身有问题。于是我开始了一系列「错误」的排查:首先,我尝试更新 php 插件:asdf plugin update php。结果提示已经是最新了。然后,我干脆把插件删了重装:asdf plugin remove php,再 asdf plugin add php。结果还是一样的错误。接着,我开始怀疑是不是 asdf 版本太旧了。我当时用的是 v0.14.0,于是把整个 ~/.asdf 目录删掉,重新 git clone 安装了 v0.15.0。结果呢?还是不行,同样的报错。到这里我意识到,问题可能根本不在 asdf 本身,而是出在 asdf-php 这个插件上。

于是我开始仔细排查插件的目录结构:

ls -la ~/.asdf/plugins/php/bin/

发现 bin 目录下有这么几个文件:download、exec-env、install、latest-stable、list-all、list-bin-paths。看起来都挺正常的。

但是当我去看 install 脚本的内容时,发现它调用了 get_download_file_path 和 download_source 这两个函数。问题是,这两个函数定义在 download 脚本里,而 install 脚本压根就没有 source 引入 download 脚本!这不是妥妥的 bug 吗?

为了验证我的猜测,我又看了一下插件的 git 提交历史:

cd ~/.asdf/plugins/php && git log --oneline -10

果然,最近有一个提交 e09cb20,commit message 写的是 "Move download logic to separate script and simplify install args"。翻译过来就是「把下载逻辑移到单独的脚本,简化安装参数」。
问题就出在这里!开发者把下载相关的函数移到了 download 脚本,但是 install 脚本里还在调用这些函数,却忘了引入 download 脚本。这是一个很典型的重构时遗漏的问题。

知道了原因,解决方法就很简单了——回退到这个提交之前的版本:

cd ~/.asdf/plugins/php && git checkout 1eaf4de

然后再执行 asdf install php 8.1.2,一切正常,PHP 8.1.2 顺利安装完成。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 9:22:50

PPIO上线阿里Wan 2.6:制作电影级AI视频,对标Sora2

今天,PPIO 上线阿里最新发布的 Wan 2.6 视频生成模型。 Wan 2.6 是一个用于生成高质量视频和图像内容的高级多模态 AI 模型,将文本、图像、视频和音频整合到一个无缝框架中,提供文生视频、图生视频和参考视频生成等功能。 Wan 2.6 可生成 24f…

作者头像 李华
网站建设 2026/11/5 9:13:25

【混合检索的Dify结果融合】:揭秘高效信息聚合背后的黑科技

第一章:混合检索的Dify结果融合在构建现代智能问答系统时,单一检索方式往往难以兼顾准确率与召回率。混合检索通过结合关键词检索与向量检索的优势,能够更全面地覆盖用户查询意图。Dify作为低代码AI应用开发平台,支持灵活配置混合…

作者头像 李华
网站建设 2026/11/6 1:34:18

从零搭建高效音频流水线:Dify 1.7.0切片配置完整教程

第一章:从零认识Dify 1.7.0音频处理核心能力 Dify 1.7.0 引入了全新的音频处理引擎,支持实时语音识别、音频特征提取与多格式编解码转换。该版本通过集成 Whisper 模型轻量化实例,实现了高精度离线语音转文本功能,适用于会议记录、…

作者头像 李华
网站建设 2026/11/6 2:26:28

大数据ETL中的数据质量提升工具与方法

大数据ETL中的数据质量提升工具与方法:从第一性原理到生产级落地关键词:数据质量、ETL、数据治理、数据血缘、质量规则引擎、异常检测、数据剖析、数据清洗、数据验证、数据监控摘要:在大数据时代,ETL(Extract-Transfo…

作者头像 李华
网站建设 2026/11/4 23:55:03

筑巢引凤 - Ascend C开发环境极速部署与验证全攻略

工欲善其事,必先利其器。本文将从实战专家的视角,为你揭示搭建稳定高效的Ascend C开发环境的完整心法,让你在AI硬件编程的起跑线上就领先一个身位。 目录 开篇摘要 一、 先问再建:选择你的Ascend C开发范式 1.1 三种部署范式的…

作者头像 李华
网站建设 2026/11/5 14:25:03

模型训练中的精度保障:Ascend C算子数值稳定性分析

目录 1. 🎯 摘要 2. 🔍 数值稳定性理论基础 2.1 浮点数表示与误差传播 2.2 数值误差量化模型 2.3 数值稳定性指标分析 3. ⚙️ 关键算子数值稳定实现 3.1 Softmax数值稳定算法 3.2 LayerNorm数值稳定优化 4. 🚀 实战:混合…

作者头像 李华