Il serait vraiment intéressant d'avoir une commande pour désinstaller un paquet.
Il est vrai que pour un projet particulier, on peut directement éditer le fichier composer.json
, mais lorsque la librairie est installée en mode global, il faut changer le fichier composer.json
dans le dossier défini par COMPOSER_HOME
, ce qui n'est franchement pas facile !
Je prends un exemple avec PHPUnit :
Depuis la version 4.0, il est recommandé d'utiliser Composer
(en mode global) à la place de PEAR. Ok, c'est cool, on utilise notre outil préféré de gestion des dépendances, et on suit la documentation pour l'installation :
$ composer.phar global require "phpunit/phpunit=4.0.*"
Sauf que désormais, une nouvelle mise à jour est disponible, la 4.1. Une simple mise à jour ne passe pas à la version supérieure, et changer le numéro de version en ligne de commande n'est pas possible :
$ composer.phar global require "phpunit/phpunit=4.1.*"
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Can only install one of: phpunit/phpunit-mock-objects[2.1.0, 2.0.5].
- Can only install one of: phpunit/phpunit-mock-objects[2.1.0, 2.0.5].
- phpunit/phpunit 4.1.0 requires phpunit/phpunit-mock-objects ~2.1 -> satisfiable by phpunit/phpunit-mock-objects[2.1.0].
- Installation request for phpunit/phpunit 4.1.* -> satisfiable by phpunit/phpunit[4.1.0].
- Installation request for phpunit/phpunit-mock-objects == 2.0.5.0 -> satisfiable by phpunit/phpunit-mock-objects[2.0.5].
Il faut donc modifier manuellement le fichier global composer.json
, ce qui n'est pas facile.
Le problème se pose également lorsque l'on veut tester ou utiliser temporairement une librairie en mode global : impossible de désinstaller facilement en ligne de commande.
Est-il possible d'ajouter cette commande ? Je pense que ce serait très utile car Composer peut installer des bibliothèques en mode global.
duplicata de https://github.com/composer/composer/issues/1622 (une fois que composer unrequire
sera implémenté, il sera également disponible en mode global automatiquement)
@stof Désolé, mais j'ai vérifié avant de créer ce problème.
Pour tous ceux qui viennent de Google, il y a composer global remove
maintenant disponible.
Par exemple:
composer global remove fabpot/php-cs-fixer
Commentaire le plus utile
Pour tous ceux qui viennent de Google, il y a
composer global remove
maintenant disponible.Par exemple: