Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本
Posted
技术标签:
【中文标题】Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本【英文标题】:league/flysystem-aws-s3-v3 on Laravel 8 other packages require lower version 【发布时间】:2021-03-08 04:12:55 【问题描述】:运行composer require league/flysystem-aws-s3-v3
时,我得到:
league/flysystem-aws-s3-v3[2.0.0, ..., 2.x-dev] require league/flysystem ^2.0.0 -> found league/flysystem[2.0.0-alpha.1, ..., 2.x-dev] 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.
在我的composer.json
中没有提到league/flysystem
,但它确实以"league/flysystem": "^1.1",
出现在我的composer.lock
中。看起来我有几个包(如spatie/laravel-backup
)将其作为依赖项。
我该如何进行?我不确定如何更新其他软件包作为依赖项的软件包,并且这些其他软件包也已固定为特定版本。
【问题讨论】:
【参考方案1】:正如您已经发现的那样:spatie/laravel-backup
尚不兼容 league/flysystem
v2(这是相当新的版本……昨天发布了!)。
只需通过 composer require league/flysystem-aws-s3-v3:"^1.0"
要求该 AWS 软件包的“旧”版本。
毕竟这不是 Laravel 本身的问题。
【讨论】:
【参考方案2】:这是 Laravel 的问题。 Laravel v8 还不支持league/flysystem
v2。 v9 将附带对它的支持:https://github.com/laravel/framework/pull/33612
【讨论】:
我刚刚通过 composer require League/flysystem 安装了 Laravel 9 和 League/flysystem,它安装得很好。【参考方案3】:我使用的是最新版本的 laravel V8.4.0(2021 年 7 月)
我解决了这个问题:
-
删除项目根目录下的
composer.lock
正在运行composer require league/flysystem-aws-s3-v3:"~1.0"
【讨论】:
【参考方案4】:对于 Laravel 8 使用
composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
【讨论】:
以上是关于Laravel 8 上的 League/flysystem-aws-s3-v3 其他软件包需要较低版本的主要内容,如果未能解决你的问题,请参考以下文章
App Engine 上的 Laravel 8:“请提供有效的缓存路径”
Laravel 8 上的 HTTP RESTful API 功能测试
调用字符串上的成员函数 addEagerConstraints() - Laravel 8