OSX -bash: compositore: comando non trovato


91

Se digito "compositore" ricevo il messaggio di errore sopra.

Ho fatto sul mio macbook:

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

per installare Composer a livello globale.

Ho dovuto creare manualmente la directory / local / bin / composer, forse questo ha causato l'errore?

php composer.phar

funziona se io nella mia directory del codice dove si trova il file .phar.

Cosa posso fare per risolvere il problema ed eseguire composer a livello globale?

Il mio ~ / .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/composere aggiungere /usr/local/bina $PATHin ~/.bash_profile. Questa è roba utente di base e non appartiene a questo posto.
Droppy

Cosa devo aggiungere esattamente al mio .profile? Ho aggiornato il mio post con il contenuto del mio .profile
bobbybackblech

Quindi il compositore è ora a /usr/local/bin/composer/composer.phar?
inganno

Stesso problema su mac os x 10.11.4 qui con /usr/local/bine /usr/local/bin/composernel $ PATH, ancora ottenendo-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Risposte:


288

Il percorso /usr/local/bin/composernon è nel tuo PATH, gli eseguibili in quella cartella non verranno trovati.

Elimina la cartella /usr/local/bin/composer, quindi esegui

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

Questo sposta composer.pharverso /usr/local/bin/e lo rinomina in composer(che è ancora un eseguibile, non una cartella).

Quindi usalo come:

$ composer ...

2
Il fatto che tu stia digitando "$" forse? Questo è solo per indicare il prompt della riga di comando, che in genere è "$".
inganno

Sto composer: Permission denied vedendo alcune soluzioni con sudo chmod ma sto ottenendo sudo: not found (è un synology (busybox))
Jeroen van Langen

5
Forse è per questo $che non dovrebbe essere incluso nelle risposte. Sembra ovvio a noi ma non alle nuove persone. Ed è anche ovvio che non hai bisogno che le $persone capiscano che stai parlando del terminale.
JGallardo

4
Penso che includere $ sia fantastico (se hai problemi a capire cosa sia $ per hmmm, forse lo scripting Linux non fa per te?)
gvanto

Perché questo non è nella documentazione su Composer! Ty @deceze
Jonas de Herdt,

68

Beh, ho provato molte cose ma nessuna sembrava funzionare. Ma il seguente processo ha funzionato bene, ora posso usare il composercomando nel terminale. Sono 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

Brillante! Solo la tua soluzione ha funzionato per me, grazie!
Nilay Dagdemir

30

Mi trovo nello stesso problema anche dopo aver spostato composer.pharin "/ usr / local / bin / composer" utilizzando il seguente comando in amazon linux.

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

Ho usato il seguente comando per creare un alias per il file del compositore. Quindi ora funziona a livello globale.

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

Non so se funzionerà in OS-X. Ma quando cerco con questo problema ottengo questo collegamento. Quindi sto solo postando qui. Spero che questo possa aiutare qualcuno.


Sì, ha funzionato dopo aver creato l'alias. alias composer = '/ usr / local / bin / composer'
Sanjay,

Ottimo articolo! Sono stato cercato molto per questo.
lovecoding

23

Testato su Mac OSX dopo l'installazione tramite le istruzioni sul sito Web del compositore:

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


7

Installa Composer a livello globale su OS X 10.11 El Capitan

Questo comando NON funzionerà in OS X 10.11:

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

Scriviamo invece nel percorso / usr / local / bin dell'utente:

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

Ora possiamo accedere al comando composer globalmente, proprio come prima.


2

questo mi ha fatto perdere un giorno o due. come perché nessuno dice nei tutorial che il comando composer non deve essere usato senza effettivamente collegarsi e cose del genere ... Voglio dire che tutti scrivono il comando composer come se fosse il prossimo passo quando non siamo tutti utenti esperti di 5 anni per conoscere questi dettagli.

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

l'ha fatto per me su Ubuntu dopo essere rimasto bloccato per 2 giorni


0

Su Mac OS X, per chiunque abbia:

-bash: / usr / local / bin / composer: autorizzazione negata

problema, durante il tentativo di spostare scaricato composer.pharutilizzando:

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

questa è la causa:

Protezione dell'integrità del sistema

e questa è la soluzione:

  1. Riavvio in modalità di recupero: riavviare il Mac e tenere premuto cmd + R .
  2. Apri il terminale una volta avviata la modalità di ripristino tramite Utilità> Terminale tramite la barra in alto.
  3. Digita csrutil disablee premi invio. Dovresti vedere un messaggio restituito che dice che:

    la protezione dell'integrità del sistema è disattivata.

  4. Riavvia il computer normalmente e poi vai a configurare il compositore. Ho dovuto inserirlo /usr/bine NON /usr/local/bin perché per qualche motivo non funzionava lì.
  5. Torna alla modalità di ripristino e abilita System Integrity Protector digitando csrutil enable
  6. Torna al normale avvio e controlla che il compositore funzioni. Lo ha fatto per me.

I 6 passaggi precedenti vengono copiati da qui , quindi tutto il credito appartiene all'utente Vasheer lì.


1
Si dovrebbe chmod + x il binario invece di spegnere il csrutil ...
theprojectabot

0

Se devi eseguire composer con sudo , dovresti cambiare la directory di composer in

/usr/bin

questo è stato testato su Centos8.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.