无法在 laravel 项目中使用 composer 安装 blocktrail/blocktrail-sdk
Posted
技术标签:
【中文标题】无法在 laravel 项目中使用 composer 安装 blocktrail/blocktrail-sdk【英文标题】:Cant install blocktrail/blocktrail-sdk with composer on laravel project 【发布时间】:2019-03-01 14:38:27 【问题描述】:问题是 我需要在我的 laravel 项目中使用带有 composer 的 blocktrail/blocktrail-sdk 并得到这些错误
Using version ^3.2 for blocktrail/blocktrail-sdk
./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 paragonie/random_compat (locked at v9.99.99) -> satisfiable by paragonie/random_compat[v9.99.99].
- blocktrail/blocktrail-sdk v3.2.0 requires bitwasp/bitcoin v0.0.34.1 -> satisfiable by bitwasp/bitcoin[v0.0.34.1].
- blocktrail/blocktrail-sdk v3.2.1 requires bitwasp/bitcoin v0.0.34.1 -> satisfiable by bitwasp/bitcoin[v0.0.34.1].
- blocktrail/blocktrail-sdk v3.2.2 requires bitwasp/bitcoin v0.0.34.1 -> satisfiable by bitwasp/bitcoin[v0.0.34.1].
- Conclusion: don't install bitwasp/bitcoin v0.0.34.1
- Installation request for blocktrail/blocktrail-sdk ^3.2 -> satisfiable by blocktrail/blocktrail-sdk[v3.2.0, v3.2.1, v3.2.2].
Installation failed, reverting ./composer.json to its original content.
COMPOSER.JSON require 和 require-dev 内容
"require":
"php": "^7.1.3",
"bitwasp/bitcoin": "^0.0.34.1",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.0",
"laravel/framework": "5.7.*",
"laravel/socialite": "^3.1",
"laravel/tinker": "^1.0",
"paragonie/random_compat": "^2.0.0"
,
"require-dev":
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
,
我能做什么?我什么都试过了,没用 linux debian 8,php 7.2.9,laravel 5.7.5,谢谢*
【问题讨论】:
您能否也将您的 composer.json 添加到问题中? 是的,我已经添加了 【参考方案1】:您需要在此处重做一些工作,因为在版本同时需要 symfony 3 和 4 的情况下,依赖关系很混乱(这会产生冲突,这在您现在收到的消息中并不明显)。不完全兼容的 php 5.6 和 7.1 的 deps 也是如此。
blocktrail-sdk-php
已经需要bitwasp/bitcoin
,不需要在你自己的composer.json中添加
https://github.com/blocktrail/blocktrail-sdk-php/blob/master/composer.json#L36
blocktrail-sdk-php 也需要99designs/http-signatures-guzzlehttp
这需要
"symfony/http-foundation": "~2.8|~3.0",
然后,您需要在另一个包中使用更新的 http-foundation(“^4.1”),特别是 laravel-framework(检查 composer.lock)
我认为您最好的选择是查看您真正想要的内容,查看 composer.json 并从最重要的包开始重新创建它。
请从最重要的包开始,并从那里开始匹配版本。您必须检查您需要的每个依赖包的 composer.json "require" 节点,有时使用一些较旧的包版本(其中一些已经为 symfony 4.X 制作,而您的一些要求只能处理 3.X )。在 github 上,当您查看 composer.json 到旧版本时,您可以通过顶部的下拉菜单轻松切换到旧版本,直到“require”与您自己的依赖版本匹配。
请注意,您可能需要准备特定回购的分叉才能进行调整。
如果你在做更新,记得在包更新的同时提交 PR,这样程序员以后就不必再为同样的事情而战了 :)
【讨论】:
以上是关于无法在 laravel 项目中使用 composer 安装 blocktrail/blocktrail-sdk的主要内容,如果未能解决你的问题,请参考以下文章
来自git clone的Laravel项目无法正常工作(无法使用key:generate或composer install / update)
我无法运行 composer update 命令 laravel 5.3 项目
使用 composer 将非 laravel 包添加到我的 Laravel 项目中