【问题标题】:How to install a package in Laravel that has a higher version dependency requirement than Laravel requirements?如何在 Laravel 中安装版本依赖要求高于 Laravel 要求的包?
【发布时间】:2021-06-19 05:48:42
【问题描述】:

我正在尝试使用最新的 Laravel 版本安装 Rubix ML。问题是 Laravel 想要更低版本的 league/filesystem,而 Rubix ML 想要更高版本。

如何在不手动修改每个依赖项 composer.json 文件的情况下解决此问题,因为这些文件将在未来的更新中被覆盖?

Problem 1
    - Root composer.json requires rubix/ml ^0.4.0 -> satisfiable by rubix/ml[0.4.0].
    - rubix/ml 0.4.0 requires league/flysystem ~2.0.2 -> found league/flysystem[2.0.2, 2.0.3, 2.0.4] but the package is fixed to 1.1.3 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

【问题讨论】:

  • 为什么不更新league/flysystem?否则,为什么不在 v0.2.4 中使用 rubix/ml,毕竟不需要 Flysystem 呢?
  • @NicoHaase 我无法更新league/flysystem,因为 Laravel 作曲家需要较低版本,而这是最新的 Laravel 版本。我确实看到我可以使用较低版本的Rubix/ML,但我不想错过任何功能。我想知道是否有办法使用最新版本的 Rubix 和 Laravel 并以某种方式协调依赖关系。
  • 由于 Flysystem v1 和 v2 之间有多个重大更改,我没有看到任何简单的方法。为什么不询问rubix/ml 的维护者是否可以添加对 v1 的支持?
  • @NicoHaase 当然是个好主意。或者要求 Laravel 开发者升级到 v2。我只是想问一下作曲家是否有办法以某种方式调和它,以便它可以立即使用。同时,我想我将只使用具有较低依赖性的分叉 Rubix ML 库,看看情况如何。谢谢!
  • 不,Composer 无法解决此类库冲突。如果代码不兼容,则代码不兼容

标签: laravel dependencies composer-php


【解决方案1】:

到目前为止,我已经能够 fork Rubix ML 存储库,更改要求以匹配 Laravel,然后在 composer 中添加该 Github 存储库。我不确定这是否会破坏 Rubix ML 中的任何内容,但希望不会。如果有的话,我会等待有人给出更好的答案。

正如@NicoHaase 证实的那样,除了要求LaravelRubix ML 的开发人员创建与旧/新Flysystem 库兼容的版本之外,似乎没有更好的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 2018-09-11
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    相关资源
    最近更新 更多