Composer global update怎么用 更新全局安装的软件包【维护】

发布时间 - 2026-02-01 00:00:00    点击率:
composer global update 经常不更新是因为它只更新 ~/.composer/composer.json 中明确声明的包,而该文件通常不存在、为空或约束过旧;真正可靠的方式是用 outdated 检查、require 显式重装、并确认 PATH 和 bin 目录生效。

composer global update 为什么经常不更新?

它不是“一键升级所有全局工具”的万能命令——composer global update 只会更新 ~/.composer/composer.json 文件里明确声明的包,而绝大多数人从未手动维护过这个文件。你用 composer global require laravel/installer 装完后,包确实进了 ~/.composer/vendor/,但不会自动写进 composer.json。所以运行 composer global update 后没输出、没日志、没变化,大概率是因为:
~/.composer/composer.json 根本不存在
• 或者存在但为空/只含旧约束(比如 "laravel/installer": "^4.0"),根本拉不到 v5.x
• 甚至 composer global status 直接报 No composer.json found

真正靠谱的更新方式:显式重装优于盲等 update

别指望 composer global update 自动兜底。更可控、更常见的做法是针对性重装:

  • 先查当前版本:composer global show laravel/inst

    aller
    或直接运行 laravel --version
  • 再指定版本重装(推荐):composer global require laravel/installer:^5.0 --update-with-dependencies
  • 想更新全部?先生成基础清单:composer global show --format=json > ~/.composer/composer.json,然后手动编辑该文件,把每个包的版本号改成宽松约束(如 "*""^5.0"),最后再跑 composer global update

检查有没有可更新的包,用 outdated 而不是硬 update

composer global outdated 才是你日常维护的起点。它不改任何东西,只告诉你哪些包落后了:

  • 运行 composer global outdated,有输出就说明存在可更新项;无输出 = 当前已是最新的(在约束范围内)
  • --all 参数可深入检查间接依赖:composer global outdated --all
  • 看到某行显示 laravel/installer 4.4.0 → 5.1.0,说明可以升;若标着 (latest: 5.1.0) 却没箭头,通常意味着当前约束锁死了版本

PATH 和 bin-dir 是更新后能否用的关键

即使 composer global update 成功执行了,你也可能遇到 command not found——因为新生成的二进制文件不在 $PATH 里。

  • 确认 bin 目录是否在路径中:echo $PATH | grep -o "$HOME/.composer/vendor/bin",无输出就得补
  • 补法(加到 ~/.zshrc~/.bashrc):export PATH="$HOME/.composer/vendor/bin:$PATH",然后 source ~/.zshrc
  • 验证实际二进制是否存在:ls ~/.composer/vendor/bin/,注意有些包生成的命令名 ≠ 包名(例如 phpunit/phpunit 生成的是 phpunit,不是 phpunit.phpunit
别把 composer global update 当成系统升级按钮;它依赖一个你很可能没管过的 composer.json,且不校验 PATH 是否生效、二进制是否可执行。日常维护,outdated 看差距,require 显式装,PATH 验证到底——这三步比死磕 update 更可靠。


# php  # laravel  # js  # json  # composer  # 工具  # 系统升级  # 为什么  # echo  # format  # require  # 重装  # 是因为  # 不存在  # 为空  # 的是  # 日常维护  # 才是  # 你也  # 死了  # 告诉你 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251811 】 【 AI营销90571


相关推荐: 如何在万网自助建站平台快速创建网站?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何创建自定义Facades?(详细步骤)  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  微信小程序制作网站有哪些,微信小程序需要做网站吗?  JS去除重复并统计数量的实现方法  如何快速启动建站代理加盟业务?  怎么用AI帮你设计一套个性化的手机App图标?  高防服务器如何保障网站安全无虞?  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  javascript中闭包概念与用法深入理解  Laravel如何配置和使用缓存?(Redis代码示例)  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何在云指建站中生成FTP站点?  iOS中将个别页面强制横屏其他页面竖屏  制作企业网站建设方案,怎样建设一个公司网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  LinuxCD持续部署教程_自动发布与回滚机制  如何获取PHP WAP自助建站系统源码?  C语言设计一个闪闪的圣诞树  如何生成腾讯云建站专用兑换码?  如何在Windows 2008云服务器安全搭建网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  创业网站制作流程,创业网站可靠吗?  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  详解阿里云nginx服务器多站点的配置  如何自定义建站之星模板颜色并下载新样式?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  如何在腾讯云服务器快速搭建个人网站?  历史网站制作软件,华为如何找回被删除的网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  Linux安全能力提升路径_长期防护思维说明【指导】  JavaScript中的标签模板是什么_它如何扩展字符串功能  js实现点击每个li节点,都弹出其文本值及修改  详解Android图表 MPAndroidChart折线图  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  音乐网站服务器如何优化API响应速度?  开心动漫网站制作软件下载,十分开心动画为何停播?  ,网页ppt怎么弄成自己的ppt?  详解vue.js组件化开发实践  javascript基本数据类型及类型检测常用方法小结