不能——composer global show 默认静默退出,必须加 --all 参数才能列出全局已安装包;正确命令是 composer global show --all,等价于 composer show --all --working-dir="$COMPOSER_HOME"。

composer global show 能直接列出全局包吗?
不能——composer global show 默认不显示任何内容,它会静默退出,连提示都没有。这不是 bug,是设计行为:Composer 的 global 命令默认作用于 COMPOSER_HOME 目录下的 vendor,但 show 子命令本身不自动切换上下文,必须显式指定路径或加 --all。
正确列出全局已安装包的命令
用这个:
composer global show --all
它等价于:
composer show --all --working-dir="$COMPOSER_HOME"
-
--all是关键,否则只显示当前项目(即COMPOSER_HOME下的composer.json)里声明的包,而全局安装的工具通常不写进那个文件 - 如果
$COMPOSER_HOME未设置,Composer 会 fallback 到默认路径(如~/.composer或~/Library/Application Support/Composer),global show --all仍能工作 - 输出里带
[dev]标记的,说明是通过composer global require vendor/name:dev-master这类方式装的开发版
为什么 composer global list 不行?
因为 composer global list 根本不存在——global 子命令只支持 require、remove、update 和 show,没有 list。有人试过它会报错:Command "global:list" is not defined.
常见误操作:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 输成
composer global show(漏掉--all)→ 无输出,以为没装包 - 输成
composer show --global(参数位置错)→ 报错Unrecognized option "--global" - 在项目目录里跑
composer global show --all→ 结果正确,但容易误以为和当前项目有关
想查某个特定全局包是否装了,怎么快速验证?
别翻列表,直接问 Composer:
composer global show vendor/name
比如检查 laravel/installer:
composer global show laravel/installer
如果已安装,会显示版本、依赖和源;如果没装,会报错:Package vendor/name is not installed.
注意点:
- 包名必须写全,
laravel/installer不能简写成installer - 大小写敏感,
Phpunit/phpunit和phpunit/phpunit是两个东西 - 若提示
Could not find package,可能是拼错,也可能是装在了别的COMPOSER_HOME(比如用了COMPOSER_HOME=/tmp/composer-test临时路径)
全局包的路径和可执行文件是否在 $PATH 里,是另一个问题——show 只管“装没装”,不管“能不能直接敲命令运行”。

















