Comment puis-je mettre à jour uniquement un compositeur de dépendance?
Je m'attendais à ce
composer update videlalvaro/php-amqplib
serait uniquement la mise à jour d'une dépendance, mais au lieu de cela, il met à jour tous les.
Ce qui me manque?
PS: cette dépendance est définie comme "videlalvaro/php-amqplib": "2.2.0"
dans composer.json
PPS: le compositeur de la version utilisée est 3da05c68f9561fa822c522b1815435ff990493ff 2013-10-02 14:25:06
PPP: la sortie réelle:
$ 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].
Vous devez vous connecter pour publier un commentaire.
La commande
composer update videlalvaro/php-amqplib
ne mettre à jour que la dépendance. Toutefois, il ne faut pas désactiver le contrôle des dépendances que Compositeur.Ce que le message d'erreur est de se plaindre, c'est que les lib-soins intensifs n'est pas disponible sur votre système. Apparemment, cela pourrait être résolu par l'installation de l'extension PHP Intl.
Vous souhaitez voir des questions semblables, si vous avez un compositeur de mise à jour sur un projet nécessitant PHP 5.5 dans l'un de ses exige de, rétrogradé en PHP 5.4 et puis a couru compositeur de mise à jour sur un autre besoin, qui n'a pas besoin de PHP 5.5. Même si vous ne serait pas mise à jour le exiger que les besoins de PHP 5.5, les conditions pour que le paquet ne serait pas résolu, et ainsi de Compositeur serait un échec.
Dans votre cas, même si vous êtes juste essayer de mettre à jour
videlalvaro/php-amqplib
à la dernière version, les exigences de lasymfony/icu
ne sont pas remplies, et donc, le compositeur de la mise à jour échoue.Modifier
À essayer d'être utile, je devine que vous ré-installé PHP depuis la dernière une mise à jour, et soit retiré ou avez oublié d'installer l'extension PHP Intl. Le compositeur ne peut pas de manière satisfaisante satisfaire les exigences de votre compositeur.json est le réglage, et qui est donc en défaut de ne rien faire, plutôt que de faire sciemment une mise à jour où les conditions ne sont pas remplies.
Donc, fondamentalement, vous devez installer les extensions PHP nécessaires pour votre installation de logiciel à exécuter, puis Compositeur sera en mesure de mettre à jour le package unique que vous souhaitez mettre à jour, ainsi que de rencontrer les exigences pour les autres packages.
php5-intl
5.3.10 est déjà installé et chargé (il y a une section correspondante dansphpinfo()
). Et je n'ai pas réinstallé rien - c'est une symfony v2.3.5composer.js
que j'ai téléchargé récemment, je voulais juste ajouter une autre dépendance il.tl;dr:
Vous pouvez liste plus d'un dépendance à la mise à jour en une seule commande:
Histoire:
Si vous souhaitez mettre à jour une dépendance (
composer update some/dependency
), vous pouvez faire face à un problème qui demande n'est pas satisfaisante en raison de la dépendance est installée dans une version incorrecte. Et que l'on n'a pas nécessairement, doivent être mentionnés dans votrecomposer.json
, il pourrait être juste la dépendance d'une autre dépendance.E. g. Je voulais mettre à jour, et uniquement
google/apiclient
, mais en l'appelantcomposer update google/apiclient
se sont plaints, quigoogle/auth
(dépendance de apiclient) exigeguzzlehttp/psr7
dans la version1.2.3
. J'ai eu1.3.0
installé. Leguzzlehttp/psr7
n'était pas inscrit dans moncomposer.json
. Ce que j'avais à faire c'était de les appeler:et c'est tout! Juste mettre à jour le package que vous voulez, et si le compositeur que vous avez dit, que vous avez besoin de mettre à jour (ou de la décote :-)) d'un autre paquet, liste dans la commande.