#laravel #dependencies #composer-php
Вопрос:
Я пытаюсь установить Rubix ML с последней версией Laravel. Проблема в том , что 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.
Комментарии:
1. Почему бы не обновить
league/flysystem
? В противном случае, почему бы не использоватьrubix/ml
в версии 0.2.4, которая, в конце концов, не требует Flysystem?2. @NicoHaase Я не могу обновить
league/flysystem
, потому что Laravel composer требует более низкой версии, и это последняя версия Laravel. Я действительно видел, что могу использовать более низкую версиюRubix/ML
, но я не хотел упускать какие-либо функции. Я хотел знать, есть ли способ использовать последние версии Rubix и Laravel и как-то согласовать зависимости.3. Поскольку между Flysystem v1 и v2 существует множество критических изменений, я не вижу простого способа. Почему бы не спросить сопровождающих
rubix/ml
, могут ли они добавить поддержку v1?4. @NicoHaase, безусловно, хорошая идея. Или попросите разработчиков Laravel перейти на версию v2. Я просто хотел спросить, есть ли у композитора способ каким-то образом согласовать это, чтобы его можно было использовать сразу. В то же время, я полагаю, что я просто буду использовать свою раздвоенную библиотеку Rubix ML с пониженной зависимостью и посмотрю, как это пойдет. Спасибо!
5. Нет, у Composer нет способа разрешить такие библиотечные конфликты. Если код несовместим, то код его несовместим
Ответ №1:
До сих пор мне удавалось разветвлять Rubix ML
репо, изменять требования в соответствии Laravel
с ними, а затем добавлять это репо на Github в composer. Я не уверен, что это что-нибудь сломает в Rubix ML, но, надеюсь, этого не произойдет. Я подожду, пока кто-нибудь даст лучший ответ, если он есть.
Как подтвердил @NicoHaase, похоже, что нет лучшего решения, кроме как попросить разработчиков Laravel
или Rubix ML
создать версии, совместимые со старой/новой Flysystem
библиотекой.