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
~: 
Bobbybackblech
источник
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
maksbd19
источник
Гениально! У меня сработало только ваше решение, спасибо!
Нилай Дагдемир
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
Сабрина Леггетт
источник
10

Это работает в Ubuntu;

alias composer='/usr/local/bin/composer/composer.phar'
Кристофер Уилбрахам
источник
вы должны перезапустить свой терминал, как только вы это сделали
lone_coder
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 дня

agilewebb
источник
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 .

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

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

/usr/bin

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

rotring05
источник