Come posso aggiornare un solo compositore di dipendenza?

Mi aspettavo che

composer update videlalvaro/php-amqplib

vorresti aggiornare un solo dipendenza, ma invece di che aggiorna tutti.

Che cosa mi manca?

PS: questo tipo di dipendenza è definita come "videlalvaro/php-amqplib": "2.2.0" in composer.json

PPS: il compositore versione utilizzata è 3da05c68f9561fa822c522b1815435ff990493ff 2013-10-02 14:25:06

PPP: l’output effettivo:

$ composer.phar update videlalvaro/php-amqplib --no-dev
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - symfony/icu v1.2.0 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
    - Installation request for symfony/icu == 1.2.0.0 -> satisfiable by symfony/icu[v1.2.0].
InformationsquelleAutor zerkms | 2013-10-03

 

2 Replies
  1. 37

    Il comando composer update videlalvaro/php-amqplib non solo di aggiornamento che di dipendenza. Tuttavia non disattivare il controllo della dipendenza che il Compositore fa.

    Che il messaggio di errore è di lamentarsi è che i lib-icu non è disponibile nel sistema. A quanto pare questo sarebbe risolto con l’installazione di PHP estensione Intl.

    Si dovrebbe vedere problemi simili, se hai fatto un compositore di aggiornamento su un progetto che ha richiesto PHP 5.5 in uno di esso richiede, declassati a PHP 5.4 e poi corse compositore di aggiornamento su un altro richiedono, che non necessita di PHP 5.5. Anche se non sarebbe l’aggiornamento richiede che necessita di PHP 5.5, i requisiti per il pacchetto di non essere risolvibile, e così il Compositore avrebbe fallito.

    Nel tuo caso, anche se si sta solo cercando di aggiornamento videlalvaro/php-amqplib all’ultima versione, i requisiti per symfony/icu non sono soddisfatti, e così il compositore aggiornamento non riesce.

    Modifica

    Per cercare di essere utile, sto cercando di indovinare che si re-installato PHP dall’ultima volta che hai fatto un aggiornamento, e rimosso o dimenticato di installare il PHP estensione Intl. Il compositore non può soddisfare in modo soddisfacente i requisiti che la vostra compositore.json è l’impostazione, e così è inadempiente per non fare nulla, piuttosto che consapevolmente di fare un aggiornamento in cui i requisiti non sono soddisfatti.

    Quindi, fondamentalmente, è necessario installare le estensioni di PHP che sono necessari per la tua esistenti installato il software per l’esecuzione, e quindi il Compositore sarà in grado di aggiornare il singolo pacchetto che si desidera aggiornare, oltre a soddisfare i requisiti per gli altri pacchetti.

    • php5-intl 5.3.10 è già installato e caricato (c’è una sezione corrispondente in phpinfo()). E non ho reinstallato nulla – è un symfony v2.3.5 composer.js che ho scaricato di recente, volevo solo aggiungere un’altra dipendenza c’.
    • sembra legit, sto cercando di aggiungere un nuovo bisogno compositore.json e aggiornare solo, ma dipendenze exeu/apai-io dev-master sono cambiati di una versione più recente di php, e ora non riesco più ad utilizzare la nuova biblioteca ( che ha bisogno di una versione di php requisito inferiore rispetto alla mia versione installata ) perché un’altra dipendenza, anche quando non ho bisogno di aggiornare le altre biblioteche.
    • Domanda stupida: c’è un modo per “disattivare il controllo della dipendenza Compositore che fa”? Supponiamo che sto aggiornando una dipendenza che ho scritto me, su cui l’assenza di terzi co-dipendenze sono dipendente, e so per certo che l’aggiornamento non rompere nulla, se solo che la dipendenza è aggiornato. Quali sono le mie opzioni?
    • Mi piacerebbe sapere troppo! Mi sto davvero stanchi di aspettare 10 minuti per eseguire un compositore di comando su un progetto a cui sto lavorando. Io davvero non credo che tutti gli altri progetti sono cambiate da quando ho eseguito il compositore di 5 minuti fa.
  2. 19

    tl;dr:

    È possibile elencare più dipendenza di aggiornamento in un unico comando:

    composer update one/dependency second/dependency other/dependency

    Storia:

    Se si desidera aggiornare solo una dipendenza (composer update some/dependency), si può affrontare un problema che la richiesta non è soddisfacibile a causa di qualche altro tipo di dipendenza è installato in versione errata. E che non necessariamente deve essere elencato nella composer.json, potrebbe essere solo la dipendenza di qualche altra dipendenza.

    E. g. Volevo aggiornare solo e soltanto google/apiclient, ma la chiamata di composer update google/apiclient si lamentava, che google/auth (dipendenza di apiclient) richiede guzzlehttp/psr7 in versione 1.2.3. Ho avuto 1.3.0 installato. Il guzzlehttp/psr7 non è stato elencato nel mio composer.json. Quello che ho dovuto fare, è stato quello di chiamare:

    composer update guzzlehttp/psr7 google/apiclient

    e che è! Basta aggiornare il pacchetto che si desidera, e se compositore che ti dice che devi aggiornare (o downgrade :-)) qualche altro pacchetto, elenco nel comando.

Lascia un commento