【问题标题】:Could not open input file: /usr/local/bin/composer.phar无法打开输入文件:/usr/local/bin/composer.phar
【发布时间】:2018-04-21 08:02:49
【问题描述】:

如果您相信的话,安装作曲家会遇到麻烦。

ios 山脉 (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 ( Access Denied ) 或 ~/.bash_profile 将 composer 的系统范围的供应商 bin 目录放在我的 $PATH...

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

【问题讨论】:

  • ls -l /usr/local/bin/composer* 的输出是什么?
  • -rwxr-xr-x 1 samer staff 1852323 Nov 8 16:44 /usr/local/bin/composer 我只能使用 SUDO 运行 composer
  • which composer的输出?
  • 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$

标签: php ios laravel composer-php


【解决方案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
...

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

【讨论】:

    【解决方案2】:

    你必须给它执行权限:

    试试这个:

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

    然后

    composer -v
    

    【讨论】:

    • Samers-MBP:~ samer$ sudo chmod +x /usr/local/bin/composer Password: Samers-MBP:~ samer$ composer -v Could not open input file: /usr/local/bin/composer.phar Samers-MBP:~ samer$
    【解决方案3】:

    只需执行以下步骤即可安装 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
    

    【讨论】:

    • Samers-MBP:~ samer$ sudo chmod +x /usr/local/bin/composer Password: Samers-MBP:~ samer$ composer -v Could not open input file: /usr/local/bin/composer.phar Samers-MBP:~ samer$
    • 我已经按照这些步骤操作并遇到了类似的错误。似乎 Catalina 和其他版本的 shell 更新速度不够快(或类似的东西),并继续引用 composer.phar 而不是 composer。
    猜你喜欢
    • 1970-01-01
    • 2014-01-13
    • 2021-07-14
    • 2015-03-05
    • 2017-02-24
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2016-07-29
    相关资源
    最近更新 更多