league / flysystem-aws-s3-v3 на Laravel 8 для других пакетов требуется более низкая версия

#laravel #composer-php

#laravel #composer-php

Вопрос:

При запуске 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 , но оно появляется в моем composer.lock as "league/flysystem": "^1.1", . Похоже, у меня есть несколько пакетов (например spatie/laravel-backup ), которые имеют это как зависимость.

Как мне поступить? Я не уверен, как обновить пакет, который зависит от других пакетов, и что эти другие пакеты также привязаны к определенной версии.

Ответ №1:

Как вы уже обнаружили: spatie/laravel-backup еще не совместим с league/flysystem v2 (что довольно ново, оно было выпущено… вчера!).

Просто требуется «старая» версия этого пакета AWS composer require league/flysystem-aws-s3-v3:"^1.0" .

В конце концов, это не проблема самого Laravel.

Ответ №2:

Я использую последнюю версию laravel V8.4.0 (ИЮЛЬ 2021)

Я решаю это с помощью:

  1. Удаление composer.lock в корневой папке проекта
  2. Выполняется composer require league/flysystem-aws-s3-v3:"~1.0"

Ответ №3:

Для Laravel 8 используйте

 composer require --with-all-dependencies league/flysystem-aws-s3-v3 "^1.0"
 

Ответ №4:

Это проблема с Laravel. Laravel v8 пока не поддерживает league/flysystem версию v2. v9 будет поставляться с поддержкой для него: https://github.com/laravel/framework/pull/33612

Комментарии:

1. Я только что установил Laravel 9 с помощью league / flysystem, выполнив composer require league / flysystem, и он устанавливается нормально.