作曲家全局要求在非全局等效成功时失败



我正在开发一个在packagist上作为用户/包提供的包。在本地安装它就可以了

composer require user/package

创建新项目也可以

composer create-project --prefer-dist user/package new-project

但该软件包将在全球范围内部署

composer global require user/package

但是,这会导致以下错误日志。

将当前目录更改为/home/anders/.composer ./composer.json 已更新 使用包加载作曲家存储库 信息 更新依赖项(包括 require-dev) 您的 无法将要求解析为一组可安装的软件包。

问题1 - 用户/软件包 ^v0.0.3 的安装请求 -> 用户/软件包 [v0.0.3] 可以满足。 - 结论:删除照明/容器v5.5.2 - 结论:不要安装照明/容器v5.5.2 - 不要安装 Tightenco/collect v5.4.33|不要安装 laravel/framework v5.5.2 - 不要安装拉拉维尔/框架 v5.5.2|删除 tightenco/collect v5.4.33 - 照明/容器的安装请求(安装在v5.5.2)->可以通过照明/容器[v5.5.2]满足, Laravel/Framework[v5.5.2]. - Tightenco/collect 的安装请求(安装在 v5.4.33) -> 可以通过 tightenco/collect[v5.4.33] 来满足。

安装失败,将 ./composer.json 恢复到其原始状态 内容。

这怎么可能?

  • 我试过composer global clearcache
  • 删除了我直接在/home/anders/.composer/下找到的 composer.lock 文件
  • 将我的依赖项(Laravel)从5.5.x升级到5.6.x,没有任何效果
  • 即使创建一个新的"laravel 新博客"项目并上传到packagist也会失败并显示相同的错误消息。

这是我的作曲家.json

{
"name": "user/package",
"description": "Package",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"ajthinking/tinx": "^2.1",
"fideloper/proxy": "~3.3",
"guzzlehttp/guzzle": "^6.3",
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0"
},
"require-dev": {
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"phpunit/phpunit": "~6.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r "file_exists('.env') || copy('.env.example', '.env');""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"bin": [
"package"
]    
}

非常感谢帮助解释错误日志。谢谢!

更新

这是/home/anders/.composer/的内容

{
"require": {
"cpriego/valet-linux": "^2.0",
"laravel/installer": "^1.4",
"phpunit/phpunit": "^6.4",
"phpunit/dbunit": "^3.0"
}
}

作曲家版本:1.6.5

如果这是独立的工具,你应该考虑为它构建 PHAR。可以使用kherge/box来简化生成过程。

PHAR 存档是完全独立的,因此您将摆脱全局依赖项冲突的所有问题。它还可以简化全局和本地安装的安装(您只需下载存档并使其可执行)。

相关内容

  • 没有找到相关文章

最新更新