Domanda

Voglio usare il modulo SilversTripe "SHEADSON / SILVERSTRIPE-BLOCKS DEV-MASTER".Quando lo installo con compositore, mi è stato richiesto di installare alcuni moduli come il multivaluefield e così forte.Li ho installati senza problemi.Ora ottengo la seguente uscita terminale:

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

Posso vedere, che la 3.1. * La dipendenza porta a 3 possibili versioni.Ma la versione 1.0.0 del CMS mi aggancia un po 'da allora non ho nessun posto una dipendenza da questa versione.

Quando voglio installare la versione 3.1.2 con

composer require silverstripe/cms 3.1.2
.

Ottengo la seguente uscita:

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

Il contenuto del mio file compositore.json è simile a quello:

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

Qualcuno sa perché compositore vuole installare anche la versione 1.0.0 del CMS?Ho provato già a rimuovere tutti i moduli, pulire il compositore.json, rimuovendo il compositore.lock, l'aggiornamento del compositore e tutto il resto che mi è venuto in mente.

È stato utile?

Soluzione

Quel compositore.json dei tuoi è come se fosse il file da quel CMS, non dal tuo software.

E se questo è il caso, non mi sorprende che il compositore sia confuso. In quel compositore.json dichiari che "Silverstripe / CMS" è il tuo software. E se hai taggato il software come versione 1.0.0, hai creato "Silverstripe / CMS 1.0.0" - qualsiasi software richiesto che richiede una versione più elevata non può funzionare ora.

Generalmente, se si avvia utilizzando il compositore, è una buona idea eseguire composer init nella directory principale del software e quindi rispondere a alcune domande sul tuo software in modo interattivo.

Nel caso più semplice, si crea un file vuoto composer.json e aggiungi una coppia di bretelle ricci, quindi compilare un tasto "Richiedi" e il software necessario.

Cosa non dovresti mai fare: copia il compositore.json da chiunque altro senza fissare tutti i problemi. Non so cosa hai fatto per afferrare la tua versione attuale, ma immagino che tu sia probabilmente clonato un repository per iniziare il tuo progetto. Non è completamente sbagliato, ma qualcuno dovrebbe migliorare quel flusso di lavoro quindi per evitare di ottenere problemi con il compositore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top