0

0

composer如何在离线环境中更新单个包?

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-02-28 10:57:25

|

495人浏览过

|

来源于php中文网

原创

离线更新单个包需先确认依赖已缓存,否则无法执行;应检查 vendor/composer/archives/ 或 ~/.composer/cache/files/ 是否存在对应 zip 包,无缓存则必须联网预下载;禁用网络时可用 composer require 锁版本配合 install,或配置 path 仓库直引本地源码。

composer如何在离线环境中更新单个包?

离线更新单个包:先确认依赖是否已缓存

Composer 本身不支持纯离线“更新”,它必须能解析版本约束、校验哈希、写入 composer.lock。所谓“离线更新”,本质是复用已有缓存 + 手动干预锁文件。第一步永远是检查目标包是否已在本地 vendor/composer/archives/~/.composer/cache/files/ 中存在对应 zip —— 没缓存就真没法离线操作。

常见错误现象:Could not fetch https://repo.packagist.org/p2/vimeo/vimeo-api.json 这类报错,说明 Composer 尝试联网查元数据,此时强行加 --no-interaction --no-plugins 也无济于事。

  • 运行 composer show vimeo/vimeo-api(若已安装)看当前版本和源地址
  • 手动检查 ~/.composer/cache/files/vimeo/vimeo-api/ 下是否有对应版本的 .zip.zip.sha256
  • 若没有,需提前在有网环境执行 composer require vimeo/vimeo-api:^4.0 --no-install 触发下载并缓存(不装进 vendor

强制重装指定包而不触发全量更新

你不是要“更新整个项目”,只是想把 vimeo/vimeo-api 换成另一个已下载好的版本。这时不能用 composer update vimeo/vimeo-api,它仍会联网查最新匹配版本;而要用 composer require 锁死版本 + 跳过仓库查询。

使用场景:你手头已有 vimeo/vimeo-api-4.1.0.zip,解压后放在临时目录,但不想上传到私仓,也不愿改 repositories 配置。

  • 删掉原包:rm -rf vendor/vimeo/vimeo-api
  • composer require vimeo/vimeo-api:4.1.0 --no-update 修改 composer.json,不触发任何网络请求
  • 再运行 composer install --no-scripts --no-plugins,Composer 会从本地 cache 提取 4.1.0 的 zip 并安装
  • 若 cache 里没有 4.1.0,这步会失败,错误信息是:Package vimeo/vimeo-api at version 4.1.0 has a mismatched checksum

绕过 Packagist 直接加载本地路径包

当目标包不在 Packagist、也没有预缓存,但你有它的完整源码目录(比如 Git 克隆下来的修改版),这是最可靠的离线方案。它完全不依赖远程元数据,只认本地路径和 composer.json

睿拓智能网站系统-网上商城
睿拓智能网站系统-网上商城

睿拓智能网站系统-网上商城1.0免费版软件大小:5M运行环境:asp+access本版本是永州睿拓信息专为电子商务入门级用户开发的网上电子商城系统,拥有产品发布,新闻发布,在线下单等全部功能,并且正式商用用户可在线提供多个模板更换,可实现一般网店交易所有功能,是中小企业和个人开展个人独立电子商务商城最佳的选择,以下为详细功能介绍:1.最新产品-提供最新产品发布管理修改,和最新产品订单查看2.推荐产

下载

参数差异:path 类型仓库优先级高于 packagist,且不校验签名或 hash,适合调试和定制化部署。

  • composer.jsonrepositories 数组顶部加一段:
{
    "type": "path",
    "url": "./packages/vimeo-api"
}
  • ./packages/vimeo-api 必须包含有效的 composer.json,且其中 version 字段要与 require 中声明的一致
  • 然后运行 composer require vimeo/vimeo-api:dev-main --no-update(注意用分支名或带 dev- 前缀的版本)
  • 最后 composer install 即可软链接或复制该目录到 vendor

为什么 composer update --offline 不解决你的问题

这个 flag 只跳过网络请求,但前提是 composer.lock 里已有你要的版本记录,且本地 cache 完整。它不会帮你“升版本”——如果你的 lock 文件还锁着 3.8.0,--offline 下执行 update vimeo/vimeo-api 什么也不会变。

性能影响:启用 path 仓库后,每次 install 都会计算 symlink,比 zip 解压略慢;但兼容性极好,PHP 7.2+ 到 8.3 全支持,且不依赖 ext-zip 是否开启。

最容易被忽略的是:Composer 缓存目录权限。离线机器上若 ~/.composer/cache 属主不对,即使 zip 存在,也会静默跳过并报 checksum 错误,而不是明确提示“cache not readable”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

160

2023.12.25

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

450

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

546

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

326

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

require的用法
require的用法

require的用法有引入模块、导入类或方法、执行特定任务。想了解更多require的相关内容,可以阅读本专题下面的文章。

504

2023.11.27

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

938

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

577

2023.07.06

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

0

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
第二十四期_PHP8编程
第二十四期_PHP8编程

共86课时 | 3.4万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 2.6万人学习

第二十三期_PHP编程
第二十三期_PHP编程

共93课时 | 7.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号