Composer如何查看全局已安装的包_Composer全局包管理查看步骤【入门】
很多人在使用 Composer 时,都踩过同一个坑:明明全局装好了某个工具包,终端却提示“命令找不到”,一查 composer show 列表还空荡荡的。其实问题不出在包本身,而是命令用错了——查全局包,必须用 composer global show,别拿项目里的命令去套。 查全局包不能用 com
很多人在使用 Composer 时,都踩过同一个坑:明明全局装好了某个工具包,终端却提示“命令找不到”,一查 composer show 列表还空荡荡的。其实问题不出在包本身,而是命令用错了——查全局包,必须用 composer global show,别拿项目里的命令去套。

查全局包不能用 composer show,必须用 composer global show——它不依赖当前目录,也不读项目里的 composer.json 或 vendor/,直接读取全局配置路径下的安装记录。
为什么 composer show 查不到全局包
不少人在项目目录下执行 composer show lara vel/installer,结果报 Package not found。不是包没装,是命令根本没查对地方。composer show 只扫当前项目的 vendor/composer/installed.json,而全局包装在 ~/.composer/vendor/(Linux/macOS)或 %APPDATA%\Composer\Vendor\(Windows)里,两者完全隔离。
常见的误判场景:
- 终端提示
Command "lara vel" not found,但composer show lara vel/installer也查不到——可能你装了全局包,但没加进PATH,或者误用了项目目录下的命令 - 在
/tmp之类的临时目录下运行composer show,输出为空——因为没找到项目composer.json,它不会自动 fallback 到全局
composer global show 的实用参数组合
默认输出带描述、版本、缩进依赖树,信息量不小。但日常真正需要的,往往是干净、可筛选、甚至能直接扔给脚本处理的结果:
- 只看包名列表:
composer global show --name-only,适合快速扫一眼装了哪些工具 - 只看「包名 + 版本」两列:
composer global show --name --version,空格分隔,方便| grep phpunit或写入 CI 脚本 - 导出表格格式:
composer global show --format=table,对齐清晰,适合人工核对 - 确认某个包是否真的装了:
composer global show php-cs-fixer,输全名,大小写敏感
查到包名后,怎么确认命令能用
显示已安装 ≠ 终端能直接调用。最常卡在这一步:
- 先定位全局 bin 目录:
composer config --global home返回的是全局 Composer 根路径,真实可执行文件在[home]/vendor/bin/下 - 检查该路径是否在
PATH中:echo $PATH(Linux/macOS)或echo %PATH%(Windows) - Windows 用户要特别注意:
%APPDATA%\Composer\Vendor\bin是完整路径,环境变量里必须填对,不能少\Vendor\bin - 如果 PATH 没问题但命令仍找不到,试试
ls [home]/vendor/bin/(Linux/macOS)或dir %APPDATA%\Composer\Vendor\bin(Windows),看对应可执行文件是否存在
容易被忽略的关键点
composer global show 不校验实际文件是否存在,它只读 installed.json。如果你手动删过 ~/.composer/vendor/ 下的某个包但没清理 installed.json,它仍会显示“已安装”。真要验证,得去 [home]/vendor/ 下 ls 或 dir 看目录是否还在。另外,--direct 参数只过滤掉自动拉进来的依赖,不影响包本身是否可用——它只是告诉你这个包是不是你亲手 composer global require 过的。


































