85 votes

Comment faire fonctionner composer de n'importe où ?

Je viens d'installer composer dans mon /usr/bin Ainsi, lorsque, à partir de ce dossier, j'exécute php composer.phar J'obtiens les informations d'aide sur le compositeur. Mais lorsque j'essaie d'exécuter le même programme à partir d'un autre dossier, j'obtiens Could not open input file: composer.phar .

Comment appeler php composer.phar de partout sans problème ?

8voto

Tahir Yasin Points 3525

Il suffit d'exécuter cette commande pour installer composer globalement

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

3voto

JedatKinports Points 2155

Pour MAC et LINUX, utilisez la procédure suivante :

Ajoutez le répertoire où se trouve composer.phar à votre PATH :

export PATH=$PATH:/yourdirectory

puis renommez composer.phar en composer :

mv composer.phar composer

2voto

user3257693 Points 11

Vous pouvez effectuer une simple installation globale pour le faire fonctionner de n'importe où.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Le https://getcomposer.org/doc/00-intro.md#globally recommande cette méthode. Cela a fonctionné sans problème sur Ubuntu 14.04. De cette façon, vous n'avez pas besoin de faire comme par exemple php compomser.phar show vous le faites tout simplement composer show dans n'importe quel répertoire dans lequel vous travaillez.

1voto

Vampire Coder Points 528

Pour l'exécuter à partir d'un autre endroit, vous pouvez utiliser le programme de composition fourni avec le programme. Il s'agit essentiellement d'un script bash script. Si vous ne l'avez pas, vous pouvez en créer un en copiant simplement le code suivant dans un fichier texte

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

Enregistrez ensuite le fichier dans votre dossier bin et nommez-le composer sans extension de fichier. Ajoutez ensuite le dossier bin à votre variable d'environnement f

0voto

karolus Points 846

Cela peut être dû en partie au système d'exploitation utilisé par votre serveur. J'ai récemment effectué une migration vers un nouvel environnement d'hébergement fonctionnant sous Ubuntu. L'ajout de cet alias alias composer="/path/to/your/composer" dans .bashrc ou .bash_aliases ne fonctionnait pas au début pour deux raisons :

Le serveur fonctionnait par défaut sous csh, et non sous bash. Pour vérifier si c'est un problème dans votre cas, exécutez echo $0 . Si ce qui est renvoyé est -csh vous devrez le remplacer par bash, puisque certains processus exécutés par Composer échoueront en utilisant csh/tcsh .

Pour le modifier, vérifiez d'abord si bash est disponible sur votre serveur en lançant cat /etc/shells . Si, dans la liste retournée, vous voyez bin/bash vous pouvez changer la valeur par défaut en bash en exécutant chsh -s /bin/csh .

A ce stade, vous devriez pouvoir lancer Composer, mais normalement, sur Ubuntu, vous devrez charger le script à chaque session en sourçant vos script de Bash en lançant source ~/.bashrc o source ~/.bash_profile . En effet, dans la plupart des cas, Ubuntu ne chargera pas votre script de Bash, puisqu'il charge .profile comme script par défaut.

Pour charger vos scripts de Bash lorsque vous ouvrez une session, essayez d'ajouter ceci à votre .profile (si votre scripts de Bash est .bashrc - modifiez en conséquence si .bash_profile ou autre) :

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

Pour tester, fermez votre session et rechargez-la. Si tout fonctionne correctement, exécutez composer -v o which composer devrait se comporter comme prévu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X