2014-11-21 4 views
1

У меня есть проект с композитором, для которого требуется поставщик/пакет-1 в главном файле проекта composer.json, для поставщика/пакета-1 требуется поставщик/пакет-2 в составе composer.json пакета -1. В настоящее время я установил версию 1.18.11 поставщика/пакета-1 и версии 2.3.2 поставщика/пакета-2. Я хочу обновить до нового поставщика/пакет-1 версии 1,19 * (что требует версии 2.4 * от поставщика/пакет-2.) И выполнение:.Composer требует не устанавливать пакеты

composer require vendor/package-1:1.19.* 

терпит неудачу и на выходе я получаю

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 
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - vendor/package-1 v1.19.1 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2]. 
    - Can only install one of: vendor/package2[v2.3.2, v2.4.3]. 
    - Can only install one of: vendor/package2[v2.4.0, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.1, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.2, v2.3.2]. 
    - Can only install one of: vendor/package2[v2.4.3, v2.3.2]. 
    - Installation request for vendor/package2 == 2.3.2.0 -> satisfiable by vendor/package2[v2.3.2]. 
    - Installation request for vendor/package-1 1.19.* -> satisfiable by vendor/package-1[v1.19.1, v1.19.2]. 

Installation failed, reverting ./composer.json to its original content. 

Необходима ли команда для команды для всех зависимостей? Если я попробую

composer require vendor/package-1:1.19.* vendor/package-2:2.4.* 

Это работает, но не обязательно указывать каждую зависимость, не так ли?

ответ

3

Похоже, что поставщик/пакет2 требуется в фиксированной версии как 2.3.2 или 2.3. * И не может быть обновлен до 2.4.

Как правило, вы должны попытаться снять требования к версии, чтобы обеспечить совместимые обновления. Для этого используйте оператор тильды, для этого пакет package2 равен ~ 2.3 (минимум 2.3, обновите, если это не несовместимая версия 3). То же самое относится и к package1: если вам нужны функции, включенные в строку 1.19, вам потребуется ~ 1.19.

+0

Дело в том, что пакет1 требует 2.3. * Версию пакета 2 в версии 1.18. * И версии 2.4. * В 1.19. *, Но я не понимаю, почему он не может быть обновлен, если обновления пакета1 он должен обновить пакет 2 до подходящей версии. – Khriz

+0

Каков ваш текущий 'composer.json' основного пакета, говорящий об обоих этих пакетах? – Sven

+0

Он имеет только пакет 1 в почтовом формате composer.json (например: «vendor/package1»: «1.19. *»), Package2 включен в состав composer.json package1. – Khriz

Смежные вопросы