OSX -bash: composer: perintah tidak ditemukan


93

Jika saya mengetik "komposer" saya mendapatkan pesan kesalahan di atas.

Saya lakukan di macbook saya:

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

untuk memasang Komposer secara global.

Saya harus membuat direktori / local / bin / composer secara manual, mungkinkah ini yang menyebabkan kesalahan?

php composer.phar

berfungsi jika saya di direktori kode saya tempat file .phar berada.

Apa yang dapat saya lakukan untuk memecahkan masalah dan menjalankan komposer secara global?

Profil ~ /. Saya

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/composerdan tambahkan /usr/local/binke $PATHdalam ~/.bash_profile. Ini adalah barang pengguna dasar dan bukan milik di sini.
Droppy

Apa sebenarnya yang harus saya tambahkan ke .profil saya? Saya memperbarui posting saya dengan konten
.profil

Jadi komposer sekarang /usr/local/bin/composer/composer.phar?
menipu

Masalah yang sama di mac os x 10.11.4 di sini dengan /usr/local/bin& /usr/local/bin/composerdi $ PATH, masih mendapatkan-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Jawaban:


297

Path /usr/local/bin/composertidak ada di PATH Anda, executable di folder itu tidak akan ditemukan.

Hapus folder tersebut /usr/local/bin/composer, lalu jalankan

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

Ini pindah composer.pharke /usr/local/bin/dan mengganti namanya menjadi composer(yang masih dapat dieksekusi, bukan folder).

Kemudian gunakan saja seperti:

$ composer ...

2
Fakta bahwa Anda mengetik "$" mungkin? Itu hanya untuk menandakan prompt baris perintah Anda, yang biasanya adalah "$".
menipu

Saya composer: Permission denied melihat beberapa solusi dengan sudo chmod tetapi saya mendapatkan sudo: not found (ini adalah sistem (busybox))
Jeroen van Langen

5
Mungkin itu sebabnya $tidak dimasukkan dalam jawaban. Tampak jelas bagi kami, tetapi tidak bagi orang baru. Dan juga jelas bahwa Anda tidak membutuhkan $orang untuk memahami bahwa Anda berbicara tentang terminal.
JGallardo

4
Menurut saya termasuk $ itu bagus (jika Anda memiliki masalah dalam memahami apa $ itu untuk hmmm maka mungkin skrip linux bukan untuk Anda?)
gvanto

Mengapa ini tidak ada dalam dokumentasi tentang komposer! Ty @deceze
Jonas de Herdt

70

Saya mencoba banyak hal tetapi tidak ada yang berhasil. Tetapi proses berikut melakukannya dengan benar, sekarang saya dapat menggunakan composerperintah di terminal. Saya menggunakan mac OS 10.12.1

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

Cemerlang! Hanya solusi Anda yang berhasil untuk saya, terima kasih!
Nilay Dagdemir

30

Saya mengalami masalah yang sama bahkan setelah memindahkan composer.pharke '/ usr / local / bin / composer' menggunakan perintah berikut di amazon linux.

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

Saya menggunakan perintah berikut untuk membuat alias untuk file komposer. Jadi sekarang sudah berjalan secara global.

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

Saya tidak tahu apakah ini akan berfungsi di OS-X. Tetapi ketika saya mencari dengan masalah ini saya mendapatkan tautan ini. Jadi saya hanya memposting di sini. Semoga ini bisa membantu seseorang.


Ya itu berhasil setelah membuat alias. alias composer = '/ usr / local / bin / composer'
Sanjay

Artikel bagus! Saya telah banyak dicari untuk ini.
Lovecoding

23

Diuji di Mac OSX setelah menginstal melalui petunjuk di situs komposer:

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


8

Instal Komposer secara global di OS X 10.11 El Capitan

Perintah ini TIDAK akan berfungsi di OS X 10.11:

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

Sebagai gantinya, mari tulis ke jalur / usr / local / bin untuk pengguna:

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

Sekarang kita dapat mengakses perintah komposer secara global, seperti sebelumnya.


2

ini menyia-nyiakan saya satu atau dua hari. seperti mengapa tidak ada yang mengatakan pada tutorial bahwa komposer perintah tidak akan digunakan tanpa benar-benar menghubungkan dan semacamnya ... Maksud saya semua orang menulis perintah komposer seperti langkah selanjutnya ketika kita tidak semua pengguna berpengalaman 5 tahun untuk mengetahui detail ini.

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

melakukannya untuk saya di ubuntu setelah macet selama 2 hari


0

Di Mac OS X, untuk siapa saja yang memiliki:

-bash: / usr / local / bin / composer: Izin ditolak

masalah, saat mencoba memindahkan unduhan composer.pharmenggunakan:

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

ini penyebabnya:

Perlindungan Integritas Sistem

dan inilah solusinya:

  1. Reboot dalam mode pemulihan: mulai ulang mac Anda dan tahan cmd + R .
  2. Buka terminal setelah mode pemulihan dimulai melalui Utilitas> Terminal melalui bilah di bagian atas.
  3. Ketik csrutil disabledan tekan enter. Anda akan melihat pesan yang berbunyi:

    Perlindungan Integritas Sistem tidak aktif.

  4. Restart komputer seperti biasa dan kemudian atur komposer. Saya harus memasukkannya /usr/bindan BUKAN /usr/local/bin karena untuk beberapa alasan itu tidak berfungsi di sana.
  5. Kembali ke mode pemulihan dan aktifkan Pelindung Integritas Sistem dengan mengetik csrutil enable
  6. Kembali ke boot normal dan periksa apakah komposer berfungsi. Itu untuk saya.

6 langkah di atas disalin dari sini , jadi semua kredit adalah milik pengguna Vasheer di sana.


1
Anda harus chmod + x biner daripada hanya mematikan csrutil Anda ...
theprojectabot

0

Jika Anda harus menjalankan komposer dengan sudo , Anda harus mengubah direktori komposer menjadi

/usr/bin

ini telah diuji pada Centos8.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.