OSX -bash: composer: Befehl nicht gefunden

90

Wenn ich "Komponist" eingebe, wird die obige Fehlermeldung angezeigt.

Ich habe auf meinem Macbook:

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

um Composer global zu installieren.

Ich musste das Verzeichnis / local / bin / composer manuell erstellen. Vielleicht hat dies den Fehler verursacht?

php composer.phar

funktioniert, wenn ich in meinem Code-Verzeichnis, wo die .phar-Datei ist.

Was kann ich tun, um das Problem zu lösen und Composer global auszuführen?

Mein ~ / .profil

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
quelle
1
chmod 0755 /usr/local/bin/composerund fügen Sie /usr/local/binzu $PATHin ~/.bash_profile. Dies ist grundlegendes Benutzermaterial und gehört nicht hierher.
Droppy
Was genau soll ich meinem .profile hinzufügen? Ich habe meinen Beitrag mit dem Inhalt meines .profile
bobbybackblech
Also ist der Komponist jetzt bei /usr/local/bin/composer/composer.phar?
Täuschung
Gleiches Problem auf Mac OS X 10.11.4 hier mit /usr/local/bin& /usr/local/bin/composerim $ PATH, immer noch-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Antworten:

284

Der Pfad /usr/local/bin/composerbefindet sich nicht in Ihrem PATH. Die ausführbaren Dateien in diesem Ordner werden nicht gefunden.

Löschen Sie den Ordner /usr/local/bin/composerund führen Sie ihn aus

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

Dies verschiebt sich composer.pharin /usr/local/bin/und benennt es um composer(was immer noch eine ausführbare Datei ist, kein Ordner).

Dann benutze es einfach wie:

$ composer ...
täuschen
quelle
2
Die Tatsache, dass Sie vielleicht "$" eingeben? Dies dient nur dazu, Ihre Eingabeaufforderung zu kennzeichnen, die normalerweise "$" lautet.
Täuschung
Ich bekomme eine composer: Permission denied Säge mit einigen Lösungen, sudo chmod aber ich bekomme sudo: not found (es ist eine Synologie (Busybox))
Jeroen van Langen
5
Vielleicht sollte das deshalb $nicht in die Antworten aufgenommen werden. Scheint uns offensichtlich, aber nicht für neue Leute. Und es ist auch offensichtlich, dass die $Leute nicht verstehen müssen, dass Sie über das Terminal sprechen.
JGallardo
4
Ich denke, das Einschließen des $ ist großartig (wenn Sie Probleme haben zu verstehen, was das $ für hmmm ist, dann ist Linux-Scripting vielleicht nichts für Sie?)
Gvanto
Warum steht das nicht in der Dokumentation zum Komponisten! Ty @deceze
Jonas de Herdt
67

Nun, ich habe viele Dinge ausprobiert, aber keine schien zu funktionieren. Aber der folgende Prozess hat es richtig gemacht, ich kann jetzt composerBefehl im Terminal verwenden. Ich bin in 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
quelle
Brillant! Nur Ihre Lösung hat bei mir funktioniert, danke!
Nilay Dagdemir
30

Ich komme auch nach dem Verschieben composer.pharvon '/ usr / local / bin / composer' mit dem folgenden Befehl unter Amazon Linux auf das gleiche Problem .

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

Ich habe den folgenden Befehl verwendet, um einen Alias ​​für die Composer-Datei zu erstellen. Jetzt läuft es also global.

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

Ich weiß nicht, ob dies in OS-X funktioniert. Aber wenn ich mit diesem Problem suche, bekomme ich diesen Link. Also poste ich nur hier. Hoffe das wird jemandem helfen.

Mahendran Sakkarai
quelle
Ja, es hat funktioniert, nachdem ein Alias ​​erstellt wurde. alias composer = '/ usr / local / bin / composer'
Sanjay
Großartiger Artikel! Ich wurde viel dafür gesucht.
Lovecoding
21

Getestet unter Mac OSX nach der Installation über Anweisungen auf der Composer-Website:

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

Dies funktioniert unter Ubuntu;

alias composer='/usr/local/bin/composer/composer.phar'
Christopher Wilbraham
quelle
Sie sollten Ihr Terminal neu starten, sobald Sie dies getan haben
lone_coder
6

Installieren Sie Composer global unter OS X 10.11 El Capitan

Dieser Befehl funktioniert NICHT in OS X 10.11:

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

Schreiben wir stattdessen in den Pfad / usr / local / bin für den Benutzer:

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

Jetzt können wir wie zuvor global auf den Composer-Befehl zugreifen.

Amol Gholap
quelle
2

Das hat mich ein oder zwei Tage verschwendet. Zum Beispiel, warum niemand in Tutorials sagt, dass der Befehlskomponist nicht ohne Verknüpfung und so weiter verwendet werden soll ... Ich meine, jeder schreibt einen Komponistenbefehl wie den nächsten Schritt, wenn wir nicht alle 5 Jahre erfahrene Benutzer sind, um diese Details zu kennen.

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

tat es für mich auf Ubuntu, nachdem ich 2 Tage lang feststeckte

agilewebb
quelle
0

Unter Mac OS X für alle, die:

-bash: / usr / local / bin / composer: Berechtigung verweigert

Problem beim Versuch, heruntergeladene zu verschieben composer.pharmit:

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

das ist die Ursache:

Schutz der Systemintegrität

und das ist die Lösung:

  1. Neustart im Wiederherstellungsmodus: Starten Sie Ihren Mac neu und halten Sie cmd + R gedrückt .
  2. Öffnen Sie das Terminal, sobald der Wiederherstellungsmodus über Dienstprogramme> Terminal über die Leiste oben gestartet wurde .
  3. Geben Sie ein csrutil disableund drücken Sie die Eingabetaste. Es sollte eine Nachricht zurückgegeben werden, die besagt:

    Der Systemintegritätsschutz ist deaktiviert.

  4. Starten Sie den Computer wie gewohnt neu und richten Sie den Composer ein. Ich musste es hineinstecken/usr/bin und NICHT, /usr/local/bin weil es dort aus irgendeinem Grund einfach nicht funktionierte.
  5. Kehren Sie zum Wiederherstellungsmodus zurück und aktivieren Sie den System Integrity Protector durch Eingabe csrutil enable
  6. Kommen Sie im normalen Start zurück und überprüfen Sie, ob der Komponist funktioniert. Es hat für mich getan.

Die obigen 6 Schritte werden von hier kopiert , sodass das gesamte Guthaben dem Benutzer Vasheer dort gehört.

Pmpr
quelle
1
Sie sollten die Binärdatei chmod + x, anstatt nur Ihr csrutil auszuschalten ...
theprojectabot
0

Wenn Sie Composer mit sudo ausführen müssen , sollten Sie das Verzeichnis des Composers in ändern

/usr/bin

Dies wurde auf Centos8 getestet.

rotring05
quelle