OSX -bash: composer: команда не найдена


93

Если я наберу «композитор», я получаю указанное выше сообщение об ошибке.

Я сделал на своем MacBook:

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

чтобы установить Composer глобально.

Мне пришлось вручную создать каталог / local / bin / composer, возможно, это вызвало ошибку?

php composer.phar

работает, если я в моем каталоге кода, где находится файл .phar.

Что я могу сделать, чтобы решить проблему и запустить композитор глобально?

Мой ~ / .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
~: 

1
chmod 0755 /usr/local/bin/composerи добавить /usr/local/binк $PATHв ~/.bash_profile. Это основные пользовательские вещи, и им здесь не место.
Droppy

Что именно я должен добавить в свой .profile? Я обновил свой пост содержимым моего .profile
bobbybackblech

Итак, композитор сейчас /usr/local/bin/composer/composer.phar?
deceze

Та же проблема на mac os x 10.11.4 здесь с /usr/local/bin& /usr/local/bin/composerв $ PATH, все еще -bash: /usr/local/bin/composer/composer.phar: Permission denied
возникает

Ответы:


297

Путь /usr/local/bin/composerне указан в вашем PATH, исполняемые файлы в этой папке не будут найдены.

Удалите папку /usr/local/bin/composer, затем запустите

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

Это переходит composer.pharв /usr/local/bin/и переименовывает его в composer(который до сих пор исполняемый файл, а не папка).

Тогда просто используйте это как:

$ composer ...

2
Возможно, вы набираете «$»? Это просто для обозначения приглашения командной строки, обычно это «$».
deceze

Я получаю composer: Permission denied некоторые решения, sudo chmod но я получаю sudo: not found (это синология (busybox))
Йерун ван Ланген

5
Может быть, поэтому $не следует включать в ответы. Это кажется очевидным для нас, но не для новых людей. И также очевидно, что вам не нужно, $чтобы люди понимали, что вы говорите о терминале.
JGallardo

4
Я думаю, что включение $ - это здорово (если у вас есть проблемы с пониманием того, что означает $ для хммм, тогда, может быть, сценарии linux не для вас?)
gvanto 01

Почему этого нет в документации по композитору! Тай @deceze
Йонас де Хердт

70

Ну, я много чего пробовал, но ничего не работало. Но следующий процесс сделал все правильно, теперь я могу использовать composerкоманду в терминале. Я в Mac OS 10.12.1

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

Гениально! У меня сработало только ваше решение, спасибо!
Нилай Дагдемир

30

Я сталкиваюсь с той же проблемой даже после перемещения в composer.phar'/ usr / local / bin / composer' с помощью следующей команды в amazon linux.

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

Я использовал следующую команду для создания псевдонима для файла композитора. Итак, теперь он работает по всему миру.

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

Я не знаю, будет ли это работать в OS-X. Но когда я ищу с этой проблемой, я получаю эту ссылку. Так что я просто пишу здесь. Надеюсь, это кому-то поможет.


Да, это сработало после создания псевдонима. alias composer = '/ usr / local / bin / composer'
Санджай

Отличная статья! Меня это много искали.
lovecoding

23

Проверено на Mac OSX после установки с помощью инструкций на веб-сайте композитора:

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


8

Глобальная установка Composer на OS X 10.11 El Capitan

Эта команда НЕ будет работать в OS X 10.11:

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

Вместо этого давайте напишем пользователю путь / usr / local / bin:

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

Теперь мы можем получить глобальный доступ к команде composer, как и раньше.


2

это потратило на меня день или два. например, почему никто не говорит в учебниках, что нельзя использовать композитор команд без фактического связывания и прочего ... Я имею в виду, что все пишут команду композитора, как это следующий шаг, когда мы не все 5 лет опытные пользователи, чтобы знать эти детали.

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

сделал это для меня на ubuntu после зависания на 2 дня


0

В Mac OS X для всех, у кого есть:

-bash: / usr / local / bin / composer: в доступе отказано

проблема при попытке переместить загруженное composer.pharс помощью:

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

это причина:

Защита целостности системы

и это решение:

  1. Перезагрузка в режиме восстановления: перезапустить вас макинтош и удерживайте Ctrl + R .
  2. После запуска режима восстановления откройте терминал, выбрав « Служебные программы»> «Терминал» на панели вверху.
  3. Введите csrutil disableи нажмите Enter. Вы должны увидеть сообщение о том, что:

    Защита целостности системы выключена.

  4. Перезагрузите компьютер как обычно, а затем перейдите к настройке композитора. Я должен был вставить его, /usr/binа НЕ /usr/local/bin потому, что по какой-то причине он там просто не работал.
  5. Вернитесь в режим восстановления и включите System Integrity Protector, набрав csrutil enable
  6. Вернитесь в обычную загрузку и проверьте, что композитор работает. Это сработало для меня.

Вышеупомянутые 6 шагов скопированы отсюда , поэтому вся заслуга принадлежит пользователю Vasheer .


1
Вы должны chmod + x двоичный файл вместо того, чтобы просто выключить csrutil ...
theprojectabot

0

Если вам нужно запустить композитор с sudo , вы должны изменить каталог композитора на

/usr/bin

это было проверено на Centos8.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.