【问题标题】:Laravel: command Not found [duplicate]Laravel:命令未找到[重复]
【发布时间】:2016-05-14 16:55:04
【问题描述】:

我觉得不得不问这个问题是个白痴,而且我已经解决了所有类似的问题,但无济于事。我在 mac 上的 vagrant vm 中运行 Ubuntu 14.04。我安装了 composer 并且运行了这些命令:

composer global require "laravel/installer"

(这似乎有效,并表明 laravel 是已下载的内容之一)

我也在 .bashrc 中添加了这一行

export PATH="∼/.composer/vendor/bin:$PATH"

注意,我将它添加到 vagrant 用户和 root 用户的 .bashrc 文件中。我已经注销并重新进入 shell 并使用以下命令验证了路径:

echo $PATH

这给了我这个:

∼/.composer/vendor/bin:∼/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin :/usr/games:/usr/local/games

而失败的命令本身就是这个

laravel new test

我看不出我可能缺少什么,有什么想法吗?

【问题讨论】:

  • 您是否在虚拟机中运行了这些命令?还是你的机器?我有类似的设置,并在我的机器上运行它们
  • 我没有尝试过,但它似乎有点奇怪。不一定是错的,但似乎你的 laravel 安装程序和 composer 安装在你的主机上而不是在 vm 上。也许这确实有意义,因为您可以拥有一个版本的 composer/laravel 和多个 VM。我的问题是你的主机操作系统是什么?不确定作曲家是否会在 Mac OSX 中运行
  • 是的,我使用 OS X El Capitan。 Composer 在 OS X 中运行良好(至少在 Lion、Mountain Lion、Mavericks 和 El Capitan 中)
  • 要解决你需要找到撰写配置文件位置的问题。然后修复导出路径stackoverflow.com/a/41476969/2652524

标签: laravel composer-php


【解决方案1】:

如果您将波浪号 (~) 放在引号内,它将不会被翻译到您的主目录。运行它,它应该可以工作:

export PATH=∼/.composer/vendor/bin":$PATH"

【讨论】:

  • 这也有效
  • 是的!这对我有用!谢谢!
【解决方案2】:

最好使用$HOME 而不是只使用~

在我的.zshrc(我使用zsh)我让它这样工作

export PATH="$PATH:$HOME/.composer/vendor/bin"

确保您的终端确实使用了.bashrc 而不是.bash_profile,如果是这种情况,您应该编辑该文件。 如果您从 VM 中使用它,您在调用 vagrant ssh 时登录的用户是 vagrant,而不是 root

另外,记得在编辑后源文件,或者打开一个新的终端。

更新

我看到有些答案将$PATH 放在作曲家的路径之后,所以我想我可以告诉你我学到了什么是不同的。

这不是一件随意的事情,你可以随心所欲地放置。 后面的内容会覆盖前面的内容。如果您想使用覆盖已安装在 PATH 路径中的任何内容的软件包,您将需要知道这一点。

这意味着如果您在系统上安装了某些东西并且您使用 composer 安装了更新版本的软件包,它将具有相同的启动命令,因此如果 composer 路径不会在 之后系统路径,您必须引用作曲家vendor/bin 中二进制文件的完整路径才能执行它。

【讨论】:

  • 这对我有用。实际上,这里的两个答案都是正确的,但我给你点是因为我还了解到 .bashrc 并不总是运行。我用谷歌搜索,发现它必须在你的 .profile 中列出,否则没有 bueno。
  • 这对 Valet 不起作用吗?我已经安装了 laravel 安装程序并且路径正确..仍然出现错误。
  • 谢谢@phaberest!我发现我的 bash 文件实际上是 ~/.bash_profile
  • 在使用fish 时将“~”更改为“$HOME”为我解决了这个问题。谢谢!即set -U fish_user_paths "$HOME/.composer/vendor/bin" $fish_user_paths
  • 这对我有用,但我的 laravel bin 在一个奇怪的位置。所以我建议如果人们正在努力完成这项工作,他们会寻找 lavavel bin。找到 ~/ -type f -name "laravel" 然后在编辑后检查你的路径你编辑你的 .bashrc echo $PATH 确保你已经添加了 laravel 文件夹的路径
【解决方案3】:

对于使用 Homestead 的任何人,我发现这个对我有用

export PATH="$PATH:$HOME/.config/composer/vendor"

【讨论】:

  • 实际上它是 export PATH="$PATH:$HOME/.config/composer/vendor/bin" 反正谢谢你的线索 :)
  • 为什么每次新建项目都要使用这个命令?有没有办法使这个命令永久化?
  • @ColinStadig 你看过我的回答了吗?把它放在你终端的配置文件中。
【解决方案4】:

粘贴这个

export PATH=~/.composer/vendor/bin:$PATH

然后重启终端。

【讨论】:

    【解决方案5】:

    只是添加到接受的答案...

    如果您直接在终端上执行命令(在这种情况下,路径将一直可用,直到终端窗口或选项卡关闭)

    如果把前面的路径弄乱了,需要打开和关闭终端窗口(或标签页)

    例子:

    首先执行(以某种方式弄乱路径)

    PATH="test"
    

    然后执行

    PATH="$PATH:$HOME/.config/composer/vendor/bin"
    

    您仍然会收到错误消息 现在关闭终端窗口或选项卡并重新打开并执行

    PATH="$PATH:$HOME/.config/composer/vendor/bin"
    

    错误应该消失了!

    【讨论】:

      【解决方案6】:

      检查/root/.composer 目录是否存在,如果不存在则像这样安装composer:

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

      然后再次安装 laravel,之后你的命令就可以工作了。

      【讨论】:

        【解决方案7】:

        打开你的终端并运行这些给定的行:

        对于 zsh 和 bash:

        export PATH="$HOME/.config/composer/vendor/bin:$PATH"
        
        source ~/.zshrc
        source ~/.bashrc
        

        仅适用于 bash:

        export PATH=~/.config/composer/vendor/bin:$PATH
        
        source ~/.bashrc
        

        【讨论】:

        • 请勿复制您的帖子,也不要仅将其设为链接。为每个问题定制每个响应,或者标记为重复关闭。
        • 对不起,@Frankerz。现在我修改评论。谢谢。
        猜你喜欢
        • 2014-12-10
        • 2020-10-01
        • 2017-07-06
        • 2015-04-20
        • 1970-01-01
        • 2020-02-21
        • 2015-05-29
        • 2020-02-16
        相关资源
        最近更新 更多