Задать вопрос
lamo4ok
@lamo4ok
Программист

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

Суть такова, есть проект сайта, у него свой composer.json, и в нем есть зависимость "laravel/framework": "5.2.*". В папке vendor/laravel/framework есть свой composer.json, в котором есть зависимость "symfony/console": "2.8.*|3.0.*" Есть желание обновить laravel/framework до версии 5.3.0. Естественно, идем в composer.json проекта сайта и там поправляем в зависимости номер версии laravel, получается "laravel/framework": "5.3.0". После чего запускаем composer update laravel/framework, находясь в папке проекта. Все было бы здорово, но получаем вот такой вот лог:
> C:\Users\Stas\phpstorm\_php\5.6\php.exe C:\Users\Stas\phpstorm\_composer\composer.phar update laravel/framework
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
    - Installation request for laravel/framework 5.3.0 -> satisfiable by laravel/framework[v5.3.0].
    - Conclusion: remove symfony/console v3.0.8
    - Conclusion: don't install symfony/console v3.0.8
    - laravel/framework v5.3.0 requires symfony/console 3.1.* -> satisfiable by symfony/console[v3.1.0, v3.1.1, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6, v3.1.7, v3.1.8, v3.1.9].
    - Can only install one of: symfony/console[v3.1.0, v3.0.8].
    - Can only install one of: symfony/console[v3.1.1, v3.0.8].
    - Can only install one of: symfony/console[v3.1.2, v3.0.8].
    - Can only install one of: symfony/console[v3.1.3, v3.0.8].
    - Can only install one of: symfony/console[v3.1.4, v3.0.8].
    - Can only install one of: symfony/console[v3.1.5, v3.0.8].
    - Can only install one of: symfony/console[v3.1.6, v3.0.8].
    - Can only install one of: symfony/console[v3.1.7, v3.0.8].
    - Can only install one of: symfony/console[v3.1.8, v3.0.8].
    - Can only install one of: symfony/console[v3.1.9, v3.0.8].
    - Installation request for symfony/console (locked at v3.0.8) -> satisfiable by symfony/console[v3.0.8].


Process finished with exit code 2 at 03:47:05.
Execution time: 13 332 ms.

То есть, нам предлагают обновить пакет symfony/console до какой-либо из указанных версий. Но как сделать так, чтобы это происходило автоматически? Так как во-первых, мы все равно хотим получить все новые пакеты, необходимые для обновления, а во-вторых, есть подозрение, что там руками столько всего надо будет обновлять, что ой, да и неверно это, с моей точки зрения.

Заранее спасибо!
  • Вопрос задан
  • 1158 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
lamo4ok
@lamo4ok Автор вопроса
Программист
Как всегда, отвечу сам себе. Нефиг умничать и набирать "composer update laravel/framework", вместо этого нужно было просто "composer update". По логике вещей (ну, как я бы сделал), при первом варианте нужно все равно все зависимости подтягивать для этого пакета, но composer, видимо, считает иначе. Впрочем, в этом тоже есть свои логика.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DJZT
@DJZT
Laravel - code for you
Вам надо обновлять все а не только один пакет. composer update. И переход между ивжорными версиями фреймверком не так то просто. Надо много руками потом сделать. Читайте в оф доке инструкции, как обновить фрейм с одной версии на другую.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы