" sudo作曲家"命令有效,但"作曲家"不是?

时间:2015-03-10 09:58:18

标签: php terminal composer-php osx-yosemite

我想这很容易。在我的OS X - Yosemite上,我已将composer.phar复制到我的/usr/bin目录中。我已经使用了一段时间,但今天我需要运行“composer update”。它当然没有用,所以我跑了“sudo composer update”。然后我收到消息“未找到命令编辑器”。 CHMM

我根据文档将作曲家复制到/usr/local/bin,现在“sudo composer”就像魅力一样。但是当我在没有sudo的情况下运行“composer”时,它仍然使用“/usr/bin”目录中的旧版本。所以我删除了它。

现在作曲家只能使用sudo命令。我得到“无法打开输入文件:/usr/bin/composer.phar”否则。如何将命令“composer”指向/usr/local/bin中的新位置?

5 个答案:

答案 0 :(得分:3)

编辑:

  

的/ etc / bashrc中

将此添加到该文件:

  

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

运行:

  

source / etc / bashrc

Composer现在应该在没有sudo的情况下运行。

答案 1 :(得分:2)

获得一个好的composer命令而不是composer.phar的另一个选择:

$ curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin
$ ln -s /usr/local/bin/composer.phar /usr/local/bin/composer

答案 2 :(得分:0)

我会回答你如何在我的Ubuntu 16.10中解决它,你可以比较你的 我的作曲家文件夹设置在

/home/abdallah/.composer/

我只给这个文件777权限,所以任何用户组都可以访问

sudo chmod -R 777 /home/abdallah/.composer/

就是这样 我希望这对你有帮助

答案 3 :(得分:0)

好的,我遇到了必须使用sudo运行composer命令的问题,但是为了让它工作而不会抛出这种错误(在Ubuntu 15.10中):

[ErrorException]
copy(/home/randomuser/.composer/cache/files/barryvdh/laravel-cors/056068736ff8f002514178e1416c7665732eaddc.zip): failed to open stream: Permission denied

简单地解决了我的问题是:

  • 导航到我的主页目录$ cd
  • 使用:sudo chown -R $USER:$USER .composer/
  • 更改 .composer 的所有权
  • 然后composer install顺利运作。
  

PS:对于其他情况,这可能会有所不同。

希望这会有所帮助:)

答案 4 :(得分:0)

从其他答案来看,似乎解决方案可能因您的系统而异。这就是我在Mac 10.12上修复问题的方法。

/ usr / local / bin / composer 中的我的作曲家可执行文件与〜/ .composer / 配置和缓存文件不同。

/usr/local/bin/composer myusr admin ~/.composer/ myusr staff

myusr 的主要群组是员工,因此我将 / usr / local / bin / composer 的群组更改为员工

/usr/local/bin myusr$ chgrp staff composer

在过去运行composer作为 sudo 时创建的缓存文件仍然会导致问题,所以我删除了这些文件。 Composer缓存文件位于此处:~/.composer/cache/

如果更新在 composer update 期间挂起,则项目的 .composer 目录中的项目检查/清空缓存文件。