无法在 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 项目中

无法打开 Laravel 项目

无法找到使用 composer 安装 jwt-auth 的可发布资源

在扩展布局的视图中无法访问Laravel View Composer变量