Composer — запрошенный пакет существует, но он отклонен вашим ограничением

Когда я запускаю установку из composer, у меня появляется эта ошибка:

λ композитор установить
Вы запускаете composer с включенным xdebug. Это имеет большое влияние на производительность во время выполнения. Увидеть https://getcomposer.org/xdebug
Загрузка репозиториев композитора с информацией о пакете
Обновление зависимостей (включая require-dev)
Ваши требования не могут быть разрешены для устанавливаемого набора пакетов.

Ошибка :

Проблема 1
— Запрошенный пакет antoineb1 / smoney_bundle 1.0 существует как antoineb1 / smoney_bundle [dev-master], но он отклонен вашим ограничением.

мой composer.json

{
"name": "project",
"license": "proprietary",
"type": "project",
"minimum-stability": "dev",
"prefer-stable" : true,
"autoload": {
"psr-4": {
"": "src/"}
},
"config": {
"preferred-install": "dist"},
"repositories": [
{
"url": "bitbucket url",
"type": "vcs"}
],
"require": {
"php": ">=5.5.9",
"antoineb1/smoney_bundle": "1.0"}
}

34

Решение

Ограничение версии "1.0" является внутренне интерпретируется как "1.0.0.0-stable" версия.

Но единственная доступная версия:

antoineb1 / smoney_bundle [DEV-мастер].

Таким образом, вы можете изменить указанную версию на одну из следующих в зависимости от того, какая версия вам подходит:

  • 1.0.* (который рассматривается композитором как >=1.0.0.0-dev <1.1.0.0-dev — вероятно, не будет работать, потому что, очевидно, нет никаких версий в этом пакете)
  • dev-master
  • dev-master#<hash>
  • @dev
  • и т.п.

Увидеть схема композитора для справки.

26

Другие решения

Комментарий @Guillaume ниже этот ответ заслуживает большей презентации.

Кажется, композитор хочет мерзавец релиз это имеет v в этом.

Так и должно быть v1.1.0 и не 1.1.0,

Я провел около 90 минут, глядя на


mikeill/my_repo 3.3.10 requires composer/installers 1.0.*@dev -> satisfiable by composer/installers[1.0.x-dev, v1.0.0, ...] but these conflict with your requirements or minimum-stability.

И много проблем с github, а также один или два поста SO, прежде чем, наконец, открыть эту ветку.

4

Я наткнулся на этот вопрос и обнаружил еще одну проблему, о которой я полностью забыл, которую кому-то может понадобиться проверить.

В моем случае у меня был очень старый проект git, который был разветвлен некоторое время назад, и мне пришлось объединить их (хотя разветвленный проект не имел много изменений). Поэтому я определил точку разделения на старом проекте и пометил ее как версию для композитора, чтобы я мог использовать ее вместо нового проекта.

Что я забыл, так это то, что изначально мы не использовали композитор. Таким образом, в файловой структуре в точке тега отсутствовал composer.json. Я не мог понять, почему мои новые теги не появлялись в списке «существует как», которые были «отклонены вашим ограничением». В конце концов я понял, что мне нужно создать ветку на старом теге, выбрать вишню коммита, который создал composer.json для проекта, и снова пометить его, и тогда все заработало.

Надеюсь, это заставит кого-то вспомнить, если они начнут охотиться с этим сообщением об ошибке.

1

Я на некоторое время потерял много времени, сил и рассудительности над этим вопросом — оказалось, что проблема в моем случае заключалась в том, что я указывал версию в composer.json внутри самого пакета как «dev-master».

Ссылаться на: https://getcomposer.org/doc/04-schema.md#version

Где говорится:

Примечание: Packagist использует репозитории VCS, поэтому вышеприведенное утверждение очень верно и для Packagist. Определение версии самостоятельно, скорее всего, приведет к возникновению проблем в какой-то момент. из-за человеческой ошибки.

(акцент мой)

Я удалил этот элемент версии, и он работал отлично 🙂

1
По вопросам рекламы [email protected]