无法打开输入文件:/usr/local/bin/composer.phar

时间:2017-11-08 15:03:55

标签: php ios laravel composer-php

如果您能相信,请在安装作曲家时遇到问题。

ios sierra(10.12.6)

这是我的代码

Samers-MBP:~ samer$ php composer-setup.php
All settings correct for using Composer
Downloading...
php -r "unlink('composer-setup.php');"

Composer (version 1.5.2) successfully installed to: 
/Users/samer/composer.phar
Use it: php composer.phar

Samers-MBP:~ samer$ php -r "unlink('composer-setup.php');"
Samers-MBP:~ samer$ sudo mv /Users/samer/composer.phar 
/usr/local/bin/composer
Password:
Samers-MBP:~ samer$ composer
Could not open input file: /usr/local/bin/composer.phar
Samers-MBP:~ samer$ cd /usr/local/bin
Samers-MBP:bin samer$ composer
Could not open input file: /usr/local/bin/composer.phar
Samers-MBP:bin samer$ 

我只能使用SUDO运行作曲家

Samers-MBP:~ samer$ sudo composer info
Password:
Do not run Composer as root/super user! See 
https://getcomposer.org/root for details
nesbot/carbon             1.22.1  A simple API extension for DateTime.
symfony/polyfill-mbstring v1.6.0  Symfony polyfill for the Mbstring 
extension
symfony/translation       v3.3.10 Symfony Translation Component
Samers-MBP:~ samer$ 

已安装Laravel,但我无法访问$HOME/.bashrc(拒绝访问)或~/.bash_profile以将作曲家的系统范围供应商bin目录放入我的$ PATH ...

我不知道我做错了什么或为什么它不起作用。

3 个答案:

答案 0 :(得分:1)

按照典型的安装说明,我在MacOS Catalina上遇到了类似的问题:

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

我怀疑它需要执行权限。初始权限为:

-rwxr-xr-x   1 username  staff   1994202 Sep 25 08:39 composer

尽管它对我具有执行权限,但我将其更改为在/usr/local/bin中进行其他操作:

-rwxr-xr-x   1 root  wheel   1994202 Sep 25 08:39 composer

我仍然遇到此错误:

Could not open input file: /usr/local/bin/composer.phar

我仔细检查了我的PATH变量:

% echo $PATH
/usr/local/bin:/usr/local/php5/bin:...

我获取bash_profile文件的源代码时忘记了我在zsh上,所以我为zshrc文件提供了资源。

% source ~/.bash_profile
% source ~/.zshrc

仍然没有骰子。最终我将文件名更改为composer.phar

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

然后它起作用了

% composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                /_/
Composer version 1.10.13 2020-09-09 11:46:34
...

过去,这对我来说从来没有必要,但目前它正在起作用。

答案 1 :(得分:0)

您必须为其授予执行权限:

试试这个:

sudo chmod +x /usr/local/bin/composer

然后

composer -v

答案 2 :(得分:0)

只需执行以下步骤即可安装composer。您在Mac上使用composer时没有遇到任何问题:

sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
sudo php -r "unlink('composer-setup.php');"
sudo chmod +x /usr/local/bin/composer