Brandon Buster
Brandon Buster

Reputation: 1275

Composer: Command Not Found

From within the directory holding my composer.phar file, I can't execute any composer commands.

I can see Composer is running when I execute

php composer.phar 

But any direct composer statements fail.

Not sure if it matters but Composer was included within a cloned repository.

I just want to install a single Oauth library, then likely not touch Composer again for several months, so I don't need to run it globally. I'm just confused why I can't run Composer from within this directory.

Upvotes: 104

Views: 377877

Answers (10)

Nanhe Kumar
Nanhe Kumar

Reputation: 16307

Step 1 : Open Your terminal

Step 2 : Run below command

          curl -sS https://getcomposer.org/installer | php

Step 3 : After installation run below command

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

Step 4 : Open bash_profile file create alias follow below steps

           vim ~/.bash_profile

Step 5 : Add below line in .bash_profile file

          alias composer="php /usr/local/bin/composer.phar"

Step 6 : Close your terminal and reopen your terminal and run below command

          composer

Upvotes: 14

drowsyTicker
drowsyTicker

Reputation: 2359

This problem arises when you have composer installed locally. To make it globally executable,run the below command in terminal

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

Upvotes: 218

Rajath Kamal
Rajath Kamal

Reputation: 65

Works in RHEL 8, php 7.4

sudo mv composer.phar /usr/bin/composer

Upvotes: -1

Codemaker2015
Codemaker2015

Reputation: 15716

Open terminal and run the following command,

sudo ln -s /usr/bin/php71 /usr/bin/php

Upvotes: -1

Krunal Akbari
Krunal Akbari

Reputation: 374

https://getcomposer.org/download/ it might help

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php

this code for ubuntu and wsl2.

Upvotes: -1

Nishant Shah
Nishant Shah

Reputation: 2092

This is for mac or ubuntu user, try this on terminal

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

or mac brew can try

brew install composer

Upvotes: 46

Ankur Kedia
Ankur Kedia

Reputation: 3873

First I did alias setup on bash / zsh profile.

alias composer="php /usr/local/bin/composer.phar"

Then I moved composer.phar to /usr/local/bin/

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

Then made composer executable by running

sudo chmod +x composer

Upvotes: 12

Nitin Nain
Nitin Nain

Reputation: 5493

MacOS: composer is available on brew now (Tested on Php7+):

brew install composer

Install instructions on the Composer Docs page are quite to the point otherwise.

Upvotes: 39

BSB
BSB

Reputation: 2468

I am using CentOS and had same problem.

I changed /usr/local/bin/composer to /usr/bin/composer and it worked.

Run below command :

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

Verify Composer is installed or not

composer --version

Upvotes: 95

Sven
Sven

Reputation: 70933

Your composer.phar command lacks the flag for executable, or it is not inside the path.

The first problem can be fixed with chmod +x composer.phar, the second by calling it as ./composer.phar -v.

You have to prefix executables that are not in the path with an explicit reference to the current path in Unix, in order to avoid going into a directory that has an executable file with an innocent name that looks like a regular command, but is not. Just think of a cat in the current directory that does not list files, but deletes them.

The alternative, and better, fix for the second problem would be to put the composer.phar file into a location that is mentioned in the path

Upvotes: 58

Related Questions