0

0

如何使用cgr(Composer Global Require)来隔离全局工具?

穿越時空

穿越時空

发布时间:2026-01-19 15:21:08

|

748人浏览过

|

来源于php中文网

原创

cgr 通过为每个全局工具创建独立目录和 autoload 实现轻量隔离,避免 composer global require 的依赖冲突;需将 ~/.cgr/bin 加入 PATH,并手动管理安装、卸载与升级。

如何使用cgr(composer global require)来隔离全局工具?

使用 cgr(Composer Global Require)并不能真正“隔离”全局工具,它只是让全局安装的 Composer 包更轻量、更可控——本质上仍是全局安装,但避免了污染主 Composer 全局 vendor 目录和 autoload,从而减少冲突风险。

为什么需要 cgr?

直接用 composer global require 会把所有包装进 ~/.composer/vendor/,共享同一个 autoloader。一旦多个工具依赖不同版本的同一库(比如 Symfony components),就容易报错或行为异常。cgr 每次安装都新建独立目录 + 独立 autoload,互不干扰。

安装与基本用法

先全局安装 cgr 本身(只需一次):

composer global require consolidation/cgr

之后用 cgr 替代 composer global require

cgr drush/drush
cgr phpstan/phpstan
cgr laravel/installer

每个命令会在 ~/.cgr/ 下创建独立子目录(如 drush-drush),并生成专用的 bin 脚本。

Nimo.space
Nimo.space

智能画布式AI工作台

下载

确保命令可用

cgr 安装的二进制文件默认放在 ~/.cgr/bin/,需将该路径加入系统 $PATH(通常在 ~/.bashrc~/.zshrc 中添加):

export PATH="$HOME/.cgr/bin:$PATH"

然后重载 shell 配置:source ~/.zshrc(或对应配置文件)。

管理已安装的工具

cgr 不提供内置的 list/uninstall 命令,但操作很直观:

  • 查看已装工具:ls ~/.cgr/(每个目录名即包名缩写)
  • 卸载某个工具:rm -rf ~/.cgr/{vendor}-{package},再删对应 bin 文件(如 rm ~/.cgr/bin/drush
  • 升级:直接重新运行 cgr vendor/package,会覆盖旧版本

注意:cgr 不处理依赖自动更新,也不做版本锁,适合对稳定性要求不高、追求简洁的 CLI 工具场景。

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

78

2025.09.11

composer是什么插件
composer是什么插件

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

149

2023.12.25

require的用法
require的用法

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

466

2023.11.27

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

3

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

55

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

67

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

37

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

11

2026.01.19

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.9万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 8.5万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

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

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