OSX -bash: composer: commande introuvable

91

Si je tape "composer", j'obtiens le message d'erreur ci-dessus.

J'ai fait sur mon macbook:

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

pour installer Composer globalement.

J'ai dû créer manuellement le répertoire / local / bin / composer, peut-être que cela a causé l'erreur?

php composer.phar

fonctionne si je dans mon répertoire de code où se trouve le fichier .phar.

Que puis-je faire pour résoudre le problème et exécuter composer globalement?

Mon ~ / .profile

export PS1="\W: "
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx

~: echo $ PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/bin
~: 
bobbybackblech
la source
1
chmod 0755 /usr/local/bin/composeret ajouter /usr/local/binà $PATHdans ~/.bash_profile. Il s'agit de trucs utilisateur de base et n'appartient pas ici.
Droppy
Que dois-je ajouter exactement à mon .profile? J'ai mis à jour mon message avec le contenu de mon
.profile
Alors le compositeur est maintenant à /usr/local/bin/composer/composer.phar?
deceze
Même problème sur mac os x 10.11.4 ici avec /usr/local/bin& /usr/local/bin/composerdans le $ PATH, toujours en train d'obtenir-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Réponses:

288

Le chemin /usr/local/bin/composern'est pas dans votre PATH, les exécutables de ce dossier ne seront pas trouvés.

Supprimez le dossier /usr/local/bin/composer, puis exécutez

$ mv composer.phar /usr/local/bin/composer

Cette déplace composer.pharvers /usr/local/bin/et dans le renomme composer(qui est toujours un exécutable, et non pas un dossier).

Ensuite, utilisez-le simplement comme:

$ composer ...
déceler
la source
2
Le fait que vous tapez "$" peut-être? C'est juste pour indiquer votre invite de ligne de commande, qui est généralement "$".
deceze
Je reçois composer: Permission denied des solutions avec sudo chmod mais je reçois sudo: not found (c'est une synologie (busybox))
Jeroen van Langen
5
C'est peut-être pourquoi $ne devrait pas être inclus dans les réponses. Cela semble évident pour nous, mais pas pour les nouvelles personnes. Et il est également évident que vous n'avez pas besoin du $pour que les gens comprennent que vous parlez du terminal.
JGallardo
4
Je pense qu'inclure le $ est génial (si vous avez des problèmes pour comprendre ce qu'est le $ pour hmmm, alors peut-être que le script linux n'est pas pour vous?)
gvanto
Pourquoi n'est-ce pas dans la documentation sur composer! Ty @deceze
Jonas de Herdt
68

Eh bien, j'ai essayé beaucoup de choses mais aucune ne semblait fonctionner. Mais le processus suivant l'a bien fait, je peux maintenant utiliser la composercommande dans le terminal. Je suis sous mac OS 10.12.1

$ curl -sS https://getcomposer.org/installer | php
$ chmod +x composer.phar
$ mv composer.phar /usr/local/bin/composer
$ composer
maksbd19
la source
Brillant! Seule votre solution a fonctionné pour moi, merci!
Nilay Dagdemir
30

Je rencontre le même problème même après avoir déplacé le composer.pharvers '/ usr / local / bin / composer' en utilisant la commande suivante dans amazon linux.

mv composer.phar /usr/local/bin/composer

J'ai utilisé la commande suivante pour créer un alias pour le fichier composer. Alors maintenant, il fonctionne dans le monde entier.

alias composer='/usr/local/bin/composer'

Je ne sais pas si cela fonctionnera sous OS-X. Mais lorsque je recherche avec ce problème, j'obtiens ce lien. Alors je poste juste ici. J'espère que cela aidera quelqu'un.

Mahendran Sakkarai
la source
Oui, cela a fonctionné après avoir créé un alias. alias composer = '/ usr / local / bin / composer'
Sanjay
Excellent article! J'ai été beaucoup recherché pour cela.
codage d'amour
23

Testé sur Mac OSX après l'installation via les instructions sur le site Web du compositeur:

sudo mv composer.phar /usr/local/bin/composer
Sabrina Leggett
la source
10

Cela fonctionne sur Ubuntu;

alias composer='/usr/local/bin/composer/composer.phar'
Christopher Wilbraham
la source
vous devriez redémarrer votre terminal une fois que vous avez fait cela
lone_coder
7

Installer globalement Composer sur OS X 10.11 El Capitan

Cette commande ne fonctionnera PAS sous OS X 10.11:

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

Au lieu de cela, écrivons dans le chemin / usr / local / bin pour l'utilisateur:

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

Maintenant, nous pouvons accéder à la commande composer globalement, comme auparavant.

Amol Gholap
la source
2

cela m'a gaspillé un jour ou deux. comme pourquoi personne ne dit dans les didacticiels que le compositeur de commande ne doit pas être utilisé sans réellement lier et trucs ... Je veux dire que tout le monde écrit une commande compositeur comme c'est la prochaine étape alors que nous ne sommes pas tous des utilisateurs expérimentés de 5 ans pour connaître ces détails.

cp composer.phar /usr/local/bin/composer

je l'ai fait pour moi sur Ubuntu après être resté coincé pendant 2 jours

agilewebb
la source
0

Sur Mac OS X, pour toute personne ayant:

-bash: / usr / local / bin / composer: autorisation refusée

problème, en essayant de déplacer téléchargé en composer.pharutilisant:

mv composer.phar /usr/local/bin/composer

c'est la cause:

Protection de l'intégrité du système

et voici la solution:

  1. Redémarrez en mode de récupération: vous redémarrez Mac et maintenez cmd + R .
  2. Ouvrez le terminal une fois que le mode de récupération a démarré via Utilitaires> Terminal via la barre en haut.
  3. Tapez csrutil disableet appuyez sur Entrée. Vous devriez voir un message renvoyé disant que:

    la protection de l'intégrité du système est désactivée.

  4. Redémarrez l'ordinateur normalement, puis configurez composer. J'ai dû le mettre dedans /usr/binet PAS /usr/local/bin parce que pour une raison quelconque, cela ne fonctionnait tout simplement pas.
  5. Revenez en mode de récupération et activez System Integrity Protector en tapant csrutil enable
  6. Revenez au démarrage normal et vérifiez que le compositeur fonctionne. Ça l'a fait pour moi.

Les 6 étapes ci-dessus sont copiées à partir d' ici , donc tout le crédit appartient à l'utilisateur Vasheer là-bas.

Pmpr
la source
1
Vous devriez chmod + x le binaire au lieu de simplement éteindre votre csrutil ...
theprojectabot
0

Si vous devez exécuter composer avec sudo , vous devez changer le répertoire de composer en

/usr/bin

cela a été testé sur Centos8.

rotring05
la source