OSX -bash:composer:找不到命令


91

如果我键入“ composer”,则会收到上述错误消息。

我在Macbook上做过:

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

全局安装Composer。

我不得不手动创建/ local / bin / composer目录,也许这引起了错误?

php composer.phar

如果我在我的.phar文件所在的代码目录中,则可以工作。

我该如何解决问题并在全球范围内运行作曲家?

我的〜/ .profile

export PS1="\W: "
export CLICOLOR=1
export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx

〜:回声$ PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/bin
~: 

1
chmod 0755 /usr/local/bin/composer并添加/usr/local/bin$PATH~/.bash_profile。这是基本的用户资料,不属于此处。
Droppy 2014年

我到底应该在.profile中添加什么?我使用.profile的内容更新了帖子
bobbybackblech 2014年

那么作曲家现在在/usr/local/bin/composer/composer.phar吗?
deceze

在Mac OS x 10.11.4上,在/usr/local/bin/usr/local/bin/composer以及$ PATH中存在相同的问题,仍然会遇到-bash: /usr/local/bin/composer/composer.phar: Permission denied
Pmpr

Answers:


288

该路径/usr/local/bin/composer不在您的PATH中,因此不会在该文件夹中找到可执行文件。

删除文件夹/usr/local/bin/composer,然后运行

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

这将composer.phar移入/usr/local/bin/并将其重命名为composer(仍然是可执行文件,而不是文件夹)。

然后像这样使用它:

$ composer ...

2
您实际上是在输入“ $”?这只是表示您的命令行提示符,通常为“ $”。
deceze

我得到了composer: Permission denied 一些解决方案,sudo chmod 但是却得到了sudo: not found (这是一种Synology(busybox))
Jeroen van Langen

5
也许这就是为什么$不应将其包含在答案中的原因。对我们来说似乎很明显,但对新人却不明显。同样显而易见的是,您并不需要$人们了解您在谈论终端。
JGallardo '16

4
我认为包括$很棒(如果您无法理解
hmmm

为什么在作曲家的文档中没有此内容!Ty @deceze
乔纳斯·德赫特

68

好吧,我尝试了很多东西,但似乎都没有用。但是下面的过程做对了,我现在可以composer在终端中使用命令了。我在Mac OS 10.12.1中

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

辉煌!谢谢,只有您的解决方案对我有用。
Nilay Dagdemir

30

即使composer.phar在亚马逊Linux中使用以下命令将其移至“ / usr / local / bin / composer” 后,我也遇到了同样的问题。

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

我使用以下命令为作曲家文件创建别名。因此,现在它在全球范围内运行。

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

我不知道这是否可以在OS-X中使用。但是,当我搜索此问题时,会得到此链接。所以我只是在这里发布。希望这会帮助某人。


是的,它在创建别名后起作用。别名作曲家= '的/ usr / local / bin中/作曲家'
桑杰

很棒的文章!我已经为此被搜索很多。
lovecoding

23

通过composer网站上的说明进行安装后,在Mac OSX上进行了测试:

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


7

在OS X 10.11 El Capitan上全局安装Composer

此命令在OS X 10.11中不起作用:

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

相反,让我们为用户写入/ usr / local / bin路径:

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

现在,我们可以像以前一样全局访问composer命令。


2

这浪费了我一两天。就像为什么没人在教程上说不要在没有实际链接和填充的情况下使用命令编辑器...我的意思是,当我们不是所有5年的有经验的用户都不知道这些细节时,每个人都将编写下一步的编写命令。

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

卡住2天后在ubuntu上为我做了


0

在Mac OS X上,适用于具有以下条件的任何人:

-bash:/ usr / local / bin / composer:权限被拒绝

问题,而尝试移动下载时composer.phar使用:

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

原因是:

系统完整性保护

这是解决方案:

  1. 重启在恢复模式:重新启动你的Mac和按住CMD + R
  2. 一旦通过实用工具>终端通过顶部的栏开始恢复模式,请打开终端。
  3. 键入csrutil disable并按Enter键。您应该看到一条消息味精返回说:

    系统完整性保护已关闭。

  4. 正常重启计算机,然后设置作曲器。我不得不放进去,/usr/bin不是 /usr/local/bin因为某种原因,它在那里根本不起作用。
  5. 返回恢复模式并通过键入启用系统完整性保护器 csrutil enable
  6. 返回正常启动状态,并检查作曲器是否正常工作。它对我有用。

上面的6个步骤是从此处复制的,因此所有功劳都属于该用户Vasheer


1
你应该使用chmod + x中的二进制文件,而不只是关掉你的csrutil的...
theprojectabot

0

如果必须使用sudo运行composer,则应将composer的目录更改为

/usr/bin

这已在Centos8上进行了测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.