Композитор не может установить laravel / socialite 2.0

композитору требуется laravel / socialite ^ 2.0

не работает с ошибкой ниже:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for laravel/socialite 2.0 -> satisfiable by laravel/socialite[v2.0.0].
    - Conclusion: remove guzzlehttp/guzzle 6.2.2
    - Conclusion: don't install guzzlehttp/guzzle 6.2.2
    - laravel/socialite v2.0.0 requires guzzlehttp/guzzle ~4.0 -> satisfiable by guzzlehttp/guzzle[4.0.0, 4.0.1, 4.0.2, 4.1.0, 4.1.1, 4.1.2, 4.1.3, 4.1.4, 4.1.5, 4.1.6, 4.1.7, 4.1.8, 4.2.0, 4.2.1, 4.2.2, 4.2.3, 4.2.4].
    - Can only install one of: guzzlehttp/guzzle[4.0.0, 6.2.2].
    ...
    - Can only install one of: guzzlehttp/guzzle[4.2.4, 6.2.2].
    - Installation request for guzzlehttp/guzzle (locked at 6.2.2) -> satisfiable by guzzlehttp/guzzle[6.2.2].


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

Версия Laravel - 5.3.22.

Версия PHP 7.0.10

composer.json Socialite2.0 на github показывает зависимость как жрут http 5.0 / 6.0. Почему моя установка ищет guzzlehttp 4.0?

РЕДАКТИРОВАТЬ-1:

Я пытался заставить жрать http 4.2.4, добавив его в composer.json require-dev.

Однако я получил следующую ошибку:

  Problem 1
    - The requested package guzzlehttp/guzzle (locked at 6.2.2, required as 4.2.4) is satisfiable by guzzlehttp/guzzle[6.2.2] but these conflict with your requirements or minimum-stability.
  Problem 2
    - aws/aws-sdk-php 3.19.23 requires guzzlehttp/guzzle ^5.3.1|^6.2.1 -> satisfiable by guzzlehttp/guzzle[5.3.1, 5.3.2, 5.3.x-dev, 6.2.1, 6.2.2, 6.2.3, 6.3.0, 6.2.x-dev] but these conflict with your requirements or minimum-stability.
    - aws/aws-sdk-php 3.19.23 requires guzzlehttp/guzzle ^5.3.1|^6.2.1 -> satisfiable by guzzlehttp/guzzle[5.3.1, 5.3.2, 5.3.x-dev, 6.2.1, 6.2.2, 6.2.3, 6.3.0, 6.2.x-dev] but these conflict with your requirements or minimum-stability.
    - aws/aws-sdk-php 3.19.23 requires guzzlehttp/guzzle ^5.3.1|^6.2.1 -> satisfiable by guzzlehttp/guzzle[5.3.1, 5.3.2, 5.3.x-dev, 6.2.1, 6.2.2, 6.2.3, 6.3.0, 6.2.x-dev] but these conflict with your requirements or minimum-stability.
    - Installation request for aws/aws-sdk-php (locked at 3.19.23) -> satisfiable by aws/aws-sdk-php[3.19.23].

Судя по всему, aws-sdk-php требует guzzlehttp 5.3 / 6.2. Laravel 5.3 несовместим с Socialite 3.0. Socialite 2.0 не совместим с guzzlehttp 5.3 / 6.2.

Как решить эту проблему?

TIA

РЕДАКТИРОВАТЬ-2:

мой composer.json имеет содержимое ниже:

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "php": ">=5.6.4",
    "laravel/framework": "5.3.*",
    "doctrine/dbal": "^2.5",
    "aws/aws-sdk-php-laravel": "~3.0"
},
"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.0",
    "symfony/css-selector": "3.1.*",
    "symfony/dom-crawler": "3.1.*"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "classmap": [
        "tests/TestCase.php"
    ]
},
"scripts": {
    "post-root-package-install": [
        "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "php artisan key:generate"
    ],
    "post-install-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postInstall",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "Illuminate\\Foundation\\ComposerScripts::postUpdate",
        "php artisan optimize"
    ]
},
"config": {
    "preferred-install": "dist"
}

}


person Krishna Chebrolu    schedule 24.01.2018    source источник
comment
Можете ли вы опубликовать свой файл composer.json?   -  person Thomas Edwards    schedule 24.01.2018
comment
Одна из возможностей - установить старую версию aws / aws-sdk-php, например версию 2.8 этого пакета.   -  person sk11z00    schedule 24.01.2018
comment
Другое решение - обновить вашу версию laravel до 5.3 на 5.4, ваша система поддерживает реквизиты. github.com/laravel/framework/blob/5.4/composer.json   -  person sk11z00    schedule 24.01.2018
comment
@ThomasEdwards, я выложил composer.json. добавление guzzlehttp 4.2.4 в require-dev выявило зависимость aws-sdk-php. обновление версии Laravel или понижение версии aws-sdk-php требует больших усилий для проверки приложения. К сожалению, это не вариант ..   -  person Krishna Chebrolu    schedule 24.01.2018
comment
Кстати, мое основное требование - разрешить пользователям публиковать фотографии в FB / Twitter / G + с нашего веб-сайта (НЕ по ссылкам). Есть ли альтернатива для этого?   -  person Krishna Chebrolu    schedule 24.01.2018
comment
Теперь, через несколько минут, у меня есть идея. Существует файл с именем composer.lock. Можете ли вы удалить этого поставщика файла и папки и попробовать снова запустить команду: composer require laravel / socialite ^ 2.0 ??   -  person sk11z00    schedule 25.01.2018


Ответы (4)


Вот как решили проблему: Оказалось, все просто. Поскольку я все еще изучаю, на что способен композитор, я не мог понять этого раньше.

Переход с ^ на ~ в версии помогло. Согласно Mastering Composer - советы и рекомендации, тильда (~) и тильда (~) и caret (^) должен разрешать дополнительные версии в пакетах. Но, похоже, «только будьте осторожны, не допускайте критических изменений», имеет приоритет над разрешением второстепенных версий. (по крайней мере, к такому выводу я пришел).

Вот результат:

composer require laravel/socialite:~2.0
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Installing league/oauth1-client (1.7.0): Downloading (100%)
  - Installing laravel/socialite (v2.0.21): Downloading (100%)
Writing lock file
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postUpdate
> php artisan optimize
Generating optimized class loader
Compiling common classes
person Krishna Chebrolu    schedule 26.01.2018

У меня есть одно представление об этой проблеме.

В composer.lock сохраните хэш и версию пакета, которую вы загружаете вместе с конфигурацией композитора, в этот момент или в другой раз. Затем удалите этот файл и папку vendor и снова выполните:

composer require laravel/socialite ^2.0
person sk11z00    schedule 25.01.2018

Пытаться:

composer require laravel/socialite

Надеюсь, это поможет.

См. документацию Laravel.

person bipin    schedule 24.01.2018
comment
Эта команда загружает версию Socialite 3.0, но @krsna хочет 2.0v, а версия Socialite 3.0 требует минимум 5.4v Laravel. Это не вариант, а решение - person sk11z00; 24.01.2018
comment
Версия не имеет значения, она будет работать правильно. Я думаю, он немного запутается, если он загрузит последнюю версию, тогда код не будет работать - person bipin; 24.01.2018

Попробуйте это: композитору требуется laravel / socialite: ~ 2.0 Это работает для меня :)

person welson    schedule 22.03.2019