【问题标题】:"Composer update for Laravel: Requirements could not be resolved to an installable set of packages."“Laravel 的 Composer 更新:无法将需求解析为一组可安装的软件包。”
【发布时间】:2014-04-11 08:14:10
【问题描述】:

我最近尝试使用 composer 更新我的 laravel 项目,在需求部分使用这个:

"require": {

    "laravel/framework": "4.0.*",

        "way/generators": "dev-master",

        "taylorotwell/laravel-oauth2": "0.2.*",

        "juy/profiler" : "dev-master", 

        "cviebrock/eloquent-sluggable": "1.0.*"

    },

我收到以下错误:

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

    - Conclusion: remove laravel/framework 4.0.x-dev

    - Conclusion: don't install laravel/framework 4.0.x-dev

    - Conclusion: don't install laravel/framework v4.0.10

    - Conclusion: don't install laravel/framework v4.0.9

    - Conclusion: don't install laravel/framework v4.0.8

    - Conclusion: don't install laravel/framework v4.0.7

    - Conclusion: don't install laravel/framework v4.0.6

    - Conclusion: don't install laravel/framework v4.0.5

    - Conclusion: don't install laravel/framework v4.0.4

    - Conclusion: don't install laravel/framework v4.0.3

    - Conclusion: don't install laravel/framework v4.0.2

    - Conclusion: don't install laravel/framework v4.0.1

    - Conclusion: don't install laravel/framework v4.0.0

    - Conclusion: don't install laravel/framework v4.0.0-BETA4

    - Conclusion: don't install laravel/framework v4.0.0-BETA3

    - way/generators dev-master requires illuminate/support ~4.1 -> satisfiable by laravel/framework[4.1.x-dev, 4.2.x-dev], illuminate/support[4.1.x-dev, 4.2.x-dev, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.13, v4.1.14, v4.1.15, v4.1.16, v4.1.17, v4.1.18, v4.1.19, v4.1.2, v4.1.20, v4.1.21, v4.1.22, v4.1.23, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9].

    - way/generators dev-master requires illuminate/support ~4.1 -> satisfiable by laravel/framework[4.1.x-dev, 4.2.x-dev], illuminate/support[4.1.x-dev, 4.2.x-dev, v4.1.0, v4.1.1, v4.1.10, v4.1.11, v4.1.12, v4.1.13, v4.1.14, v4.1.15, v4.1.16, v4.1.17, v4.1.18, v4.1.19, v4.1.2, v4.1.20, v4.1.21, v4.1.22, v4.1.23, v4.1.3, v4.1.4, v4.1.5, v4.1.6, v4.1.7, v4.1.8, v4.1.9].

    - don't install illuminate/support 4.1.x-dev|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support 4.2.x-dev|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.0|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.1|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.10|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.11|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.12|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.13|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.14|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.15|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.16|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.17|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.18|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.19|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.2|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.20|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.21|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.22|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.23|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.3|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.4|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.5|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.6|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.7|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.8|don't install laravel/framework v4.0.0-BETA2

    - don't install illuminate/support v4.1.9|don't install laravel/framework v4.0.0-BETA2

    - Can only install one of: laravel/framework[v4.0.0-BETA2, 4.1.x-dev].

    - Can only install one of: laravel/framework[v4.0.0-BETA2, 4.2.x-dev].

    - Installation request for laravel/framework 4.0.* -> satisfiable by laravel/framework[4.0.x-dev, v4.0.0, v4.0.0-BETA2, v4.0.0-BETA3, v4.0.0-BETA4, v4.0.1, v4.0.10, v4.0.2, v4.0.3, v4.0.4, v4.0.5, v4.0.6, v4.0.7, v4.0.8, v4.0.9].

    - Installation request for way/generators dev-master -> satisfiable by way/generators[dev-master].

我以前从未见过这种情况。我尝试删除 "cviebrock/eloquent-sluggable": "1.0.*" 行(因为它是最近添加的),但我看到了同样的错误。有任何想法吗?谢谢你。

【问题讨论】:

    标签: laravel laravel-4 composer-php


    【解决方案1】:
    way/generators dev-master requires illuminate/support ~4.1
    

    这是你的冲突,因为 laravel 4.0.* 将根据你使用的 laravel 版本安装照明/支持:https://github.com/laravel/framework/blob/master/composer.json#L61

    编辑: IE。您需要将方式/生成器降级到 1.1,因为 taylorotwell/laravel-oauth2 需要 laravel 4.0.*。

    【讨论】:

    • 我尝试将其更改为“laravel/framework”:“4.1.*”,但收到相同的错误
    • 抱歉应该检查一下,taylorotwell/laravel-oauth2 需要 laravel 4.0。*
    • 好的,那我应该用什么?
    • 假设你需要 taylorotwell/laravel-oauth2。唯一的方法:laravel 4.0.* 而是将方式/生成器降级到 1.1
    • laravel-oauth2 不能与较新版本的 laravel 一起运行,这似乎很奇怪。是否有另一个为 4.1 更新的 Oauth2 包?
    【解决方案2】:

    如果您不严格遵循该库的开发决策,请勿将dev-master 用作您自己的软件的长期(甚至短期)开发的版本要求。

    可能发生的事情是 way/generators 曾经在 dev-master 分支中与 Laravel 4.0 兼容,这导致了 1.1 版的发布。然后他们继续并切换到依赖 Laravel 4.1。

    您自己的软件只能看到该分支中的最新提交。 Composer 无法回到 dev-master 中的早期状态,就像上一个将 Laravel 4.0 定义为依赖项的状态一样。在这种情况下,您无法再使用 Composer 进行更新。如果您更新整个设置 (composer update),事情就会发生冲突。如果您只更新一个组件 (composer update other/library),它本身依赖于您未安装的较新版本的 way/generators:dev-master,它也将无法工作。

    始终使用标记版本。为了使更新更容易,不要只使用像4.0.7 这样的固定版本(虽然这些会非常稳定 - 但你将无法更新任何东西),而是使用这些波浪号版本要求:~4.0>=4.0,<5.0。这将允许更新到 4.x 分支中的任何兼容版本(前提是软件遵循语义版本控制)。特别是,它将允许更新到 Laravel 4.1。如果你知道你需要 4.1.0 作为最低版本:~4.1>=4.1,<5.0 的快捷方式。

    此外,还有一个漂亮的软件可以将依赖关系图生成为图片,包括版本要求和已解决的版本:https://github.com/clue/graph-composer 这确实有助于了解谁需要什么样的软件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2021-07-24
      • 2014-06-10
      • 2016-11-10
      • 2021-10-28
      • 2015-06-20
      • 2014-01-26
      相关资源
      最近更新 更多