gpt4 book ai didi

php - composer global require 在非全局等价物成功的地方失败

转载 作者:搜寻专家 更新时间:2023-10-31 21:20:44 26 4
gpt4 key购买 nike

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

composer require user/package

新建一个项目也可以

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

但是包是要全局部署的

composer global require user/package

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

Changed current directory to /home/anders/.composer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.

Problem 1 - Installation request for user/package ^v0.0.3 -> satisfiable by user/package[v0.0.3]. - Conclusion: remove illuminate/container v5.5.2 - Conclusion: don't install illuminate/container v5.5.2 - don't install tightenco/collect v5.4.33|don't install laravel/framework v5.5.2 - don't install laravel/framework v5.5.2|remove tightenco/collect v5.4.33 - Installation request for illuminate/container (installed at v5.5.2) -> satisfiable by illuminate/container[v5.5.2], laravel/framework[v5.5.2]. - Installation request for tightenco/collect (installed at v5.4.33) -> satisfiable by tightenco/collect[v5.4.33].

Installation failed, reverting ./composer.json to its original content.

这怎么可能?

  • 我试过 composer global clearcache
  • 删除了我直接在/home/anders/.composer/下找到的 composer.lock 文件
  • 将我的依赖项 (Laravel) 从 5.5.x 升级到 5.6.x,但没有任何效果
  • 即使创建一个新的“laravel new blog”项目并上传到 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"
}
}

Composer 版本:1.6.5

最佳答案

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

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

关于php - composer global require 在非全局等价物成功的地方失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50202689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com