Question

Je souhaite utiliser le module SilverStripe "sheadawson/silverstripe-blocks dev-master".Lorsque je l'installe avec composer, je devais installer certains modules comme multivaluefield, etc.Je les ai installés sans problème.Maintenant, j'obtiens la sortie de terminal suivante :

Pascal@Nemesis:~/Sites/xyz$ composer require sheadawson/silverstripe-blocks dev-master
./composer.json has been updated
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 silverstripe/cms 1.0.0 -> satisfiable by silverstripe/cms[1.0.0].
- sheadawson/silverstripe-blocks dev-master requires silverstripe/cms 3.1.* -> satisfiable by silverstripe/cms[3.1.0, 3.1.1, 3.1.2].
- Can only install one of: silverstripe/cms[3.1.0, 1.0.0].
- Can only install one of: silverstripe/cms[3.1.1, 1.0.0].
- Can only install one of: silverstripe/cms[3.1.2, 1.0.0].
- Installation request for sheadawson/silverstripe-blocks dev-master -> satisfiable by sheadawson/silverstripe-blocks[dev-master].

Je vois que la dépendance 3.1.* conduit à 3 versions possibles.Mais la version 1.0.0 du cms m'embrouille un peu puisque je n'ai nulle part de dépendance à cette version.

Quand je veux installer la version 3.1.2 avec

composer require silverstripe/cms 3.1.2

j'obtiens le résultat suivant :

Pascal@Nemesis:~/Sites/xyz$ composer require silverstripe/cms 3.1.2
./composer.json has been updated
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 silverstripe/cms 1.0.0 -> satisfiable by silverstripe/cms[1.0.0].
- Can only install one of: silverstripe/cms[3.1.2, 1.0.0].
- Installation request for silverstripe/cms 3.1.2 -> satisfiable by silverstripe/cms[3.1.2].

Le contenu de mon fichier composer.json ressemble à ceci :

{
    "name": "silverstripe/cms",
    "type": "silverstripe-module",
    "description": "The SilverStripe Content Management System",
    "homepage": "http://silverstripe.org",
    "license": "BSD-3-Clause",
    "keywords": ["silverstripe", "cms"],
    "authors": [
        {
            "name": "SilverStripe",
            "homepage": "http://silverstripe.com"
        },
        {
            "name": "The SilverStripe Community",
            "homepage": "http://silverstripe.org"
        }
    ],
    "require": {
        "php": ">=5.3.2",
        "ajshort/silverstripe-gridfieldextensions": "dev-master",
        "silverstripe/multivaluefield": "dev-master"
    }
}

Est-ce que quelqu'un sait pourquoi composer souhaite également installer la version 1.0.0 du cms ?J'ai déjà essayé de supprimer tous les modules, de nettoyer le composer.json, de supprimer le composer.lock, la mise à jour du compositeur et tout ce qui me venait à l'esprit.

Était-ce utile?

La solution

Votre composer.json semble être le fichier de ce CMS, et non celui de votre propre logiciel.

Et si tel est le cas, cela ne me surprend pas que Composer soit confus.Dans ce composer.json, vous déclarez que "silverstripe/cms" est VOTRE logiciel.Et si vous avez marqué votre logiciel comme version 1.0.0, vous avez créé "silverstripe/cms 1.0.0" - tout logiciel requis nécessitant une version supérieure ne peut pas fonctionner maintenant.

Généralement, si vous commencez à utiliser Composer, c'est une bonne idée d'exécuter composer init dans le répertoire principal de votre logiciel, puis répondez de manière interactive à quelques questions sur VOTRE logiciel.

Dans le cas le plus basique, vous créez un fichier vide composer.json, et ajoutez une paire d'accolades, puis remplissez une clé "exiger" et le logiciel nécessaire.

Ce que vous ne devriez JAMAIS faire :Copiez le composer.json de quelqu'un d'autre sans résoudre tous les problèmes.Je ne sais pas ce que vous avez fait pour récupérer votre version actuelle, mais je suppose que vous avez probablement cloné un référentiel pour démarrer votre projet.Ce n'est pas complètement faux - mais quelqu'un devrait alors améliorer ce flux de travail pour éviter d'avoir des problèmes avec Composer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top