composer global require在非全局等效成功的地方失败
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了composer global require在非全局等效成功的地方失败相关的知识,希望对你有一定的参考价值。
我正在开发一个包装,作为用户/包装。在本地安装它可以正常工作
composer require user/package
创建一个新项目也没关系
composer create-project --prefer-dist user/package new-project
但该套餐将在全球部署
composer global require user/package
但是这会导致以下错误日志。
将当前目录更改为/home/anders/.composer ./composer.json已更新使用包信息加载composer存储库更新依赖项(包括require-dev)无法将您的需求解析为可安装的软件包集。
问题1 - 用户/包的安装请求^ v0.0.3 - >用户/包[v0.0.3]可满足。 - 结论:删除illuminate / container v5.5.2 - 结论:不要安装illuminate / container v5.5.2 - 不要安装tightenco / collect v5.4.33 |不要安装laravel / framework v5.5.2 - 不要安装laravel / framework v5.5.2 | remove 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失败也会出现相同的错误消息。
这是我的composer.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存档是完全独立的,因此您将摆脱所有与冲突的全局依赖关系的问题。它还可以简化全局和本地安装的安装(您只需下载存档并使其可执行)。
以上是关于composer global require在非全局等效成功的地方失败的主要内容,如果未能解决你的问题,请参考以下文章
Could not open input file: composer.phar
sh 在非Multidev环境中部署到Composer Drupal 8到Pantheon。这在将代码从发布分支推送到Pantheon d时非常有用
如何在 CentOS 7 / Ubuntu 15.04 上安装 PHP 框架 Laravel