为了账号安全,请及时绑定邮箱和手机立即绑定

尝试全局安装软件包时出现 Composer 问题

尝试全局安装软件包时出现 Composer 问题

PHP
慕丝7291255 2023-08-11 17:10:21
我将一个包上传到 packagist,并运行此命令以全局需要它:composer global require emmajiugo/flutterwave-cli此操作失败,输出如下:我尝试更改composer.json文件中的一些内容,但仍然遇到问题。以下是我的composer.json文件:{    "name": "emmajiugo/flutterwave-cli",    "description": "A CLI app that helps you test Flutterwave payment on the go and also generate sample apps.",    "keywords": ["framework", "flutterwave", "rave", "rave cli", "flutterwave cli", "rave console", "flutterwave console", "cli"],    "homepage": "https://flutterwave.com",    "type": "project",    "license": "MIT",    "support": {        "issues": "https://github.com/emmajiugo/flutterwave-cli/issues",        "source": "https://github.com/emmajiugo/flutterwave-cli"    },    "authors": [        {            "name": "Chigbo Ezejiugo",            "email": "emmajiugo@gmail.com"        }    ],    "require": {        "php": "^7.2.5",        "laminas/laminas-text": "^2.7",        "laravel-zero/framework": "^5.8",        "padraic/phar-updater": "^1.0.6",        "vlucas/phpdotenv": "^4.0",        "yuloh/open": "^0.1.0"    },    "require-dev": {        "mockery/mockery": "^1.3.1",        "phpunit/phpunit": "^8.5"    },    "autoload": {        "psr-4": {            "App\\": "app/"        }    },    "autoload-dev": {        "psr-4": {            "Tests\\": "tests/"        }    },    "config": {        "preferred-install": "dist",        "sort-packages": true,        "optimize-autoloader": true    },    "scripts": {        "post-create-project-cmd": [            "@php application app:rename"        ]    },    "minimum-stability": "dev",    "prefer-stable": true,    "bin": ["flutterwave"]}
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

您是否尝试过阅读错误消息?一行告诉你问题:

emmajiugo/flutterwave-cli v1.3 需要 laravel-zero/framework ^7.0

另一方面,您的composer.json要求"laravel-zero/framework": "^5.8"- 这两个要求显然不能一起工作。您应该在库中需要较低版本的 Laravel,或者在应用程序中需要更高版本的 Laravel


查看完整回答
反对 回复 2023-08-11
?
largeQ

TA贡献2039条经验 获得超7个赞

Composer 的“全局安装”功能的工作原理是在特定目录中设置 Composer 项目并以正常方式管理它。正如手册所述:

全局命令允许您运行其他命令,例如安装、删除、要求或更新,就像从 COMPOSER_HOME 目录运行它们一样。

这只是管理存储在中央位置的项目的帮助程序,该位置可以保存您希望随处可用的 CLI 工具或 Composer 插件。

这是理解您看到的输出的关键,输出如下:

将当前目录更改为 /Users/emmanuelezejiugo/.composer

此后发生的所有事情就好像您在该目录中运行普通的 Composer 命令一样

冲突的第一部分相当简单:

  • emmajiugo/flutterwave-cli v1.3 需要 laravel-zero/framework ^7.0

  • laravel-zero/framework v7.x 需要照亮/容器 ^7.0

导致冲突的原因显示在消息末尾:

  • 照明/容器的安装请求(锁定于 v5.8.28)

composer.json 这是指您已将该软件包“锁定”到当前正在安装软件包的项目中的特定版本。换句话说,您试图为该项目添加两个相互矛盾的需求。

正如我们上面所确定的,该项目不是的新库,它是作曲家在/Users/emmanuelezejiugo/.composer. 所以您需要更改的配置位于/Users/emmanuelezejiugo/.composer/composer.json.

最简单的解决方案可能是不在该文件夹中安装库。如上所述,该composer global命令实际上除了为您更改目录之外没有做任何事情;大多数时候,您最好为每个项目或工具创建一个目录并在那里需要其依赖项,即使您只需要本地副本来运行某些命令。


查看完整回答
反对 回复 2023-08-11
?
跃然一笑

TA贡献1826条经验 获得超6个赞

我运行composer global update并更新了所有必需的软件包。然后就做了composer global require repo-name/repo-package-name并且效果很好。



查看完整回答
反对 回复 2023-08-11
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号