web-dev-qa-db-fra.com

Comment puis-je résoudre l'erreur "Vos besoins ne peuvent pas être résolus en un ensemble de packages pouvant être installés"?

Lorsque je lance composer update je reçois une sortie câblée.

enter image description here

Voici mon compositeur.json ressemble.

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.", "keywords": ["framework", "laravel"],
    "license": "MIT",
    "repositories": [{
        "type": "vcs",
        "url": "https://github.com/Zizaco/ardent.git"
    }],
    "require-dev": {
        "phpunit/phpunit": "4.3.*"
    },
    "require": {
        "laravel/framework": "4.2.*", 
        "laravelbook/ardent": "dev-master as 2.4.0", 
        "zizaco/entrust": "dev-master", 
        "sebklaus/profiler": "dev-master", 
        "doctrine/dbal": "dev-master"
    },
    "autoload": {
        "classmap": [
            "app/commands",
            "app/controllers",
            "app/models",
            "app/database/migrations", "app/database/seeds", "app/tests",
            "app/libraries"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled", 
            "php artisan optimize"
        ],
        "post-update-cmd": [
            "php artisan clear-compiled", 
            "php artisan optimize"
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "stable"
}

Comment puis-je résoudre ce problème?

40
kyo

Vos dépendances logicielles ont un conflit de version incompatible.

Dans le même temps, vous souhaitez installer toute version de Laravel 4.2.x et "zizaco/entrust" à partir de sa branche principale. Et cette branche maîtresse nécessite au moins Laravel 5.0 (à peu près).

Le problème vient de la dépendance aux branches. Il est probable que le paquet zizaco/entrust utilisait jadis Laravel 4.2 dans sa branche principale et que vous ayez pu installer vos dépendances ce jour-là. Mais dès que cette branche sera mise à jour avec une configuration incompatible, vous ne pourrez jamais exécuter composer update et obtenir des dépendances mises à jour.

Toujours utiliser les versions étiquetées! Idéalement, vous utilisez une version assouplie qui permet des mises à jour compatibles. Cela devrait être exprimé comme une exigence de version tilde-two-number: ~1.2 installerait une version 1.2.0 et ultérieure (comme 1.2.99 ou 1.2.100), ainsi que 1.3 et ultérieure. Si vous avez besoin d'une version de correctif spécifique: La version à trois chiffres Caret ^1.2.10 installera la version 1.2.10 ou ultérieure, ainsi que les versions 1.3 et supérieures.

L'utilisation de cette exigence de version au lieu de dev-master vous permettra d'utiliser des versions publiées au lieu de l'état instable dans la branche principale et vous permettra de vous adresser à la version la plus récente qui fonctionne toujours avec Laravel 4.2. Je suppose que ce serait zizaco/entrust version 1.3.0, mais la version 1.2 serait également admissible. Allez avec "zizaco/entrust": "~1.2".

29
Sven

Je suis confronté au même problème. J'utilise le framework de microservice 'Lumen'. J'ai récemment résolu le même problème en installant deux packages: -

  1. Sudo apt-get install php7.0-mbstring,
  2. Sudo apt-get install php7.0-xml ou Sudo apt-get install php-xml

Après avoir installé ceci, vous devez exécuter cette commande: - composer update

J'espère que ça va résoudre le problème. Je travaille sur mon système.

28
Ankit

Ces dev-masters ont-ils été ajoutés automatiquement? Evitez-les comme des contraintes de version inutiles. Pour "n'importe quelle version appropriée", utilisez "*" ou "@dev" si cela ne vous gêne pas. Je pense qu'Entrust est le fauteur de troubles potentiel.

De plus, "minimum-stability": "stable" impose des contraintes supplémentaires, et

"minimum-stability": "dev",
"prefer-stable": true

est plus sans conflit, considérez-le comme une règle de base.

7
Estus Flask

Exécutez cette commande:

composer installer --ignore-platform-reqs

ou

mise à jour du compositeur --ignore-platform-reqs

1
Gufran Hasan

Ajoutez "barryvdh/laravel-cors": "^0.7.3" à la fin de require array dans composer.json

Enregistrez composer.json et exécutez composer update

Vous avez terminé !

1
Tahir Yasin

CAUSE:

L'erreur se produit car votre dossier de projet appartient à l'utilisateur root.

SOLUTION

Changez de propriétaire pour l'utilisateur actuellement connecté et non pour l'utilisateur root. Si vous ne disposez que de root en tant qu'utilisateur unique, créez un autre utilisateur doté des privilèges root.

$ Sudo chown -R current_user/my/project/directory /

ensuite

$ composer install

0
Simon Njenga

J'ai rencontré ce problème dans Laravel 5.8. Ce que j'ai fait était de faire composer require pour chaque bibliothèque et toutes les installations ont été correctement installées.

Ainsi:

au lieu de l'ajouter au fichier composer.json ou de spécifier une version:

composer require msurguy/honeypot: dev-master

J'ai plutôt fait sans spécifier aucune version:

composer require msurguy/honeypot

J'espère que ça aide, merci

0
BlackPearl

"config": {"platform": {"ext-pcntl": "7.2", "ext-posix": "7.2"}}

0
Full Heleno