Pregunta

Quiero utilizar el módulo SilverStripe "sheadawson/silverstripe-blocks dev-master".Cuando lo instalo con Composer, se me pidió que instalara algunos módulos como multivaluefield y demás.Los instalé sin problema.Ahora obtengo el siguiente resultado de terminal:

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].

Puedo ver que la dependencia 3.1.* conduce a 3 versiones posibles.Pero la versión 1.0.0 del cms me enreda un poco ya que no tengo ninguna dependencia de esta versión.

Cuando quiero instalar la versión 3.1.2 con

composer require silverstripe/cms 3.1.2

obtengo el siguiente resultado:

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].

El contenido de mi archivo compositor.json se ve así:

{
    "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"
    }
}

¿Alguien sabe por qué Composer quiere instalar también la versión 1.0.0 del cms?Ya intenté eliminar todos los módulos, limpiar el compositor.json, eliminar el compositor.lock, la actualización del compositor y todo lo que me vino a la mente.

¿Fue útil?

Solución

Ese compositor.json tuyo parece ser el archivo de ese CMS, no de tu propio software.

Y si ese es el caso, no me sorprende que Composer esté confundido.En ese compositor.json usted afirma que "silverstripe/cms" es SU software.Y si etiquetó su software como versión 1.0.0, creó "silverstripe/cms 1.0.0"; cualquier software requerido que necesite una versión superior no puede funcionar ahora.

Generalmente, si empiezas a usar Composer, es una buena idea ejecutar composer init en el directorio principal de su software y luego responda algunas preguntas sobre SU software de forma interactiva.

En el caso más básico, creas un archivo vacío. composer.json, agregue un par de llaves y luego complete una clave "requerir" y el software necesario.

Lo que NUNCA debes hacer:Copie el archivo compositor.json de cualquier otra persona sin solucionar todos los problemas.No sé qué hiciste para obtener tu versión actual, pero supongo que probablemente clonaste algún repositorio para comenzar tu proyecto.Eso no está del todo mal, pero alguien debería mejorar ese flujo de trabajo para evitar tener problemas con Composer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top