OSX -bash: composer: comando não encontrado

91

Se eu digitar "composer", recebo a mensagem de erro acima.

Eu fiz no meu macbook:

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

para instalar o Composer globalmente.

Tive que criar manualmente o diretório / local / bin / composer, talvez isso tenha causado o erro?

php composer.phar

funciona se eu estiver no meu diretório de código onde está o arquivo .phar.

O que eu poderia fazer para resolver o problema e administrar o composer globalmente?

Meu ~ / .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
fonte
1
chmod 0755 /usr/local/bin/composere adicionar /usr/local/bina $PATHno ~/.bash_profile. Isso é coisa básica do usuário e não pertence aqui.
Droppy
O que exatamente devo adicionar ao meu .profile? Eu atualizei minha postagem com o conteúdo do meu .profile
bobbybackblech
Então o compositor está agora /usr/local/bin/composer/composer.phar?
deceze
O mesmo problema no mac os x 10.11.4 aqui com /usr/local/bin& /usr/local/bin/composerno $ PATH, ainda obtendo-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Respostas:

288

O caminho /usr/local/bin/composernão está em seu PATH, os executáveis ​​nessa pasta não serão encontrados.

Exclua a pasta /usr/local/bin/composere execute

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

Isso move composer.pharem /usr/local/bin/e renomeia em composer(que ainda é um executável, não uma pasta).

Em seguida, use-o como:

$ composer ...
deceze
fonte
2
O fato de você estar digitando "$" talvez? Isso é apenas para indicar seu prompt de linha de comando, que normalmente é "$".
deceze
Estou composer: Permission denied vendo algumas soluções com sudo chmod mas estou conseguindo sudo: not found (é uma sinologia (busybox))
Jeroen van Langen
5
Talvez seja por isso $que não deva ser incluído nas respostas. Parece óbvio para nós, mas não para pessoas novas. E também é óbvio que você não precisa do $para que as pessoas entendam que você está falando sobre o terminal.
JGallardo de
4
Acho que incluir o $ é ótimo (se você tiver problemas para entender o que é o $, hmmm, então talvez os scripts do Linux não sejam para você?)
gvanto
Por que isso não está na documentação do composer! Ty @deceze
Jonas de Herdt
68

Bem, eu tentei um monte de coisas, mas nenhuma parecia estar funcionando. Mas o processo a seguir deu certo, agora posso usar o composercomando no terminal. Estou no 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
fonte
Brilhante! Apenas sua solução funcionou para mim, obrigado!
Nilay Dagdemir
30

Eu tenho o mesmo problema mesmo depois de mover composer.pharpara '/ usr / local / bin / composer' usando o seguinte comando no Amazon Linux.

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

Usei o seguinte comando para criar um alias para o arquivo composer. Então agora está funcionando globalmente.

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

Não sei se isso vai funcionar no OS-X. Mas quando eu pesquiso com esse problema eu recebo este link. Então, estou apenas postando aqui. Espero que isso ajude alguém.

Mahendran Sakkarai
fonte
Sim, funcionou depois de criar o alias. alias composer = '/ usr / local / bin / composer'
Sanjay
Ótimo artigo! Tenho sido muito procurado por isso.
lovecoding
23

Testado no Mac OSX após a instalação por meio de instruções no site do compositor:

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

Isso funciona no Ubuntu;

alias composer='/usr/local/bin/composer/composer.phar'
Christopher Wilbraham
fonte
você deve reiniciar seu terminal depois de fazer isso
lone_coder
7

Instale globalmente o Composer no OS X 10.11 El Capitan

Este comando NÃO funcionará no OS X 10.11:

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

Em vez disso, vamos escrever no caminho / usr / local / bin para o usuário:

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

Agora podemos acessar o comando composer globalmente, como antes.

Amol Gholap
fonte
2

isso me fez perder um ou dois dias. tipo, por que ninguém diz em tutoriais que o comando composer não deve ser usado sem realmente vincular e outras coisas ... Quero dizer, todo mundo está escrevendo o comando composer como se fosse o próximo passo, quando não somos todos usuários com 5 anos de experiência para saber esses detalhes.

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

fiz isso por mim no ubuntu depois de ficar preso por 2 dias

agilewebb
fonte
0

No Mac OS X, para quem tem:

-bash: / usr / local / bin / composer: Permissão negada

problema, ao tentar mover o download composer.pharusando:

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

esta é a causa:

Proteção de Integridade do Sistema

e esta é a solução:

  1. Reiniciar em modo de recuperação: reinicie o mac e segure cmd + R .
  2. Abra o terminal assim que o modo de recuperação for iniciado em Utilitários> Terminal na barra na parte superior.
  3. Digite csrutil disablee pressione Enter. Você deverá ver uma mensagem retornada dizendo que:

    a proteção da integridade do sistema está desligada.

  4. Reinicie o computador normalmente e então configure o composer. Eu tive que colocá-lo /usr/bine NÃO /usr/local/bin porque por algum motivo ele simplesmente não funcionou lá.
  5. Volte para o modo de recuperação e ative o System Integrity Protector digitando csrutil enable
  6. Volte na inicialização normal e verifique se o composer funciona. Isso fez para mim.

Os 6 passos acima são copiados daqui , então todo o crédito pertence ao usuário Vasheer lá.

Pmpr
fonte
1
Você deve chmod + x binário em vez de apenas desligar o csrutil ...
theprojectabot
0

Se você tiver que executar o composer com sudo , você deve alterar o diretório do composer para

/usr/bin

isso foi testado no Centos8.

rotring05
fonte