网站开发专业课程网站开发如何共用菜单栏
2026/4/6 10:40:44 网站建设 项目流程
网站开发专业课程,网站开发如何共用菜单栏,wordpress 模板框架,行政机关单位网站建设今天遇到一个特别奇怪的问题#xff0c;前前后后折腾了差不多一个小时#xff0c;走了不少弯路#xff0c;最后发现是官方插件的 bug。把整个排查过程分享出来#xff0c;希望能帮到遇到同样问题的朋友。事情的起因是这样的。我有一个 Laravel 项目#xff0c;一直用 asdf…今天遇到一个特别奇怪的问题前前后后折腾了差不多一个小时走了不少弯路最后发现是官方插件的 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果然最近有一个提交 e09cb20commit 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 顺利安装完成。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询