OSX -bash: composer: nie znaleziono polecenia


92

Jeśli wpiszę „composer”, pojawi się powyższy komunikat o błędzie.

Zrobiłem na moim Macbooku:

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

zainstalować aplikację Composer na całym świecie.

Musiałem ręcznie utworzyć katalog / local / bin / composer, może to spowodowało błąd?

php composer.phar

działa, jeśli znajduję się w moim katalogu kodu, w którym znajduje się plik .phar.

Co mogę zrobić, aby rozwiązać problem i uruchomić program Composer na całym świecie?

Mój ~ / .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/composeri dodać /usr/local/bindo $PATHw ~/.bash_profile. To są podstawowe rzeczy użytkownika i nie należy tutaj.
Droppy

Co dokładnie powinienem dodać do mojego .profile? Zaktualizowałem post o zawartość mojego .profile
bobbybackblech

Więc teraz jest kompozytor /usr/local/bin/composer/composer.phar?
deceze

Ten sam problem na Mac OS X 10.11.4 tutaj z /usr/local/bin& /usr/local/bin/composerw $ PATH, nadal się -bash: /usr/local/bin/composer/composer.phar: Permission denied
pojawia

Odpowiedzi:


298

Ścieżka /usr/local/bin/composernie znajduje się w Twojej PATH, pliki wykonywalne w tym folderze nie zostaną znalezione.

Usuń folder /usr/local/bin/composer, a następnie uruchom

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

To przenosi się composer.phardo /usr/local/bin/i zmienia nazwę na composer(który nadal jest plikiem wykonywalnym, a nie folderem).

Następnie użyj go tak:

$ composer ...

2
Może fakt, że wpisujesz „$”? Ma to na celu tylko oznaczenie znaku zachęty wiersza poleceń, który zwykle jest „$”.
deceze

Dostaję composer: Permission denied piłę niektóre rozwiązania z sudo chmod ale Dostaję sudo: not found (jest to Synology (BusyBox))
Jeroen van Langen

5
Może dlatego $nie powinno się ich uwzględniać w odpowiedziach. Wydaje się to oczywiste dla nas, ale nie dla nowych ludzi. Jest również oczywiste, że nie potrzebujesz, $aby ludzie zrozumieli, że mówisz o terminalu.
JGallardo

4
Myślę, że
dodanie

Dlaczego nie ma tego w dokumentacji dotyczącej kompozytora! Ty @deceze
Jonas de Herdt

70

Cóż, próbowałem wielu rzeczy, ale żadna nie wydawała się działać. Ale następujący proces zrobił to dobrze, mogę teraz użyć composerpolecenia w terminalu. Jestem w systemie Mac OS 10.12.1

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

Znakomity! Tylko twoje rozwiązanie zadziałało dla mnie, dzięki!
Nilay Dagdemir

30

Wchodzę w ten sam problem nawet po przeniesieniu composer.phardo „/ usr / local / bin / composer” za pomocą następującego polecenia w systemie Amazon Linux.

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

Użyłem następującego polecenia, aby utworzyć alias dla pliku kompozytora. Więc teraz działa globalnie.

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

Nie wiem, czy to zadziała w OS-X. Ale kiedy wyszukuję z tym problemem, otrzymuję ten link. Więc piszę tutaj. Mam nadzieję, że to komuś pomoże.


Tak, działało po utworzeniu aliasu. alias composer = '/ usr / local / bin / composer'
Sanjay

Świetny artykuł! Wiele mnie za to przeszukiwano.
lovecoding

24

Testowane w systemie Mac OSX po instalacji zgodnie z instrukcjami na stronie internetowej Composer:

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


8

Zainstaluj aplikację Composer na całym świecie w systemie OS X 10.11 El Capitan

To polecenie NIE będzie działać w systemie OS X 10.11:

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

Zamiast tego napiszmy do ścieżki / usr / local / bin dla użytkownika:

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

Teraz mamy globalny dostęp do polecenia kompozytora, tak jak poprzednio.


2

zmarnowało mnie to dzień lub dwa. na przykład, dlaczego nikt nie mówi w samouczkach, że kompozytor poleceń nie powinien być używany bez faktycznego łączenia i innych rzeczy ... Chodzi mi o to, że każdy pisze polecenie kompozytora, jak to jest następny krok, kiedy nie wszyscy jesteśmy 5-letnimi doświadczonymi użytkownikami, aby znać te szczegóły.

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

zrobił to dla mnie na ubuntu po 2 dniach utknięcia


0

W systemie Mac OS X dla każdego, kto ma:

-bash: / usr / local / bin / composer: Odmowa dostępu

Problem podczas próby przeniesienia pobranego pliku composer.pharza pomocą:

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

to jest przyczyna:

Ochrona integralności systemu

a to jest rozwiązanie:

  1. Restart w trybie odzyskiwania: ponownego uruchomienia mac i przytrzymaj Cmd + R .
  2. Otwórz terminal po uruchomieniu trybu przywracania, wybierając Narzędzia> Terminal za pomocą paska u góry.
  3. Wpisz csrutil disablei naciśnij Enter. Powinieneś zobaczyć zwróconą wiadomość mówiącą, że:

    ochrona integralności systemu jest wyłączona.

  4. Uruchom ponownie komputer w normalny sposób, a następnie przejdź do konfiguracji kompozytora. Musiałem to włożyć /usr/bini NIE, /usr/local/bin ponieważ z jakiegoś powodu po prostu tam nie działało.
  5. Wróć do trybu odzyskiwania i włącz Ochronę integralności systemu, wpisując csrutil enable
  6. Wróć normalnie i sprawdź, czy kompozytor działa. Zrobiło to dla mnie.

Powyższe 6 kroków jest kopiowanych z tego miejsca , więc cały zasługa użytkownika Vasheer .


1
Powinieneś chmod + x plik binarny zamiast po prostu wyłączać csrutil ...
theprojectabot

0

Jeśli musisz uruchomić composer z sudo , zmień katalog composer na

/usr/bin

zostało to przetestowane na Centos8.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.