Laravel的"valet install"命令未找到

89

我正在尝试设置Laravel Valet(Valet是Mac下的Laravel开发环境)。所有步骤都正常,直到运行“valet install”命令时出现“command not found”的错误。请问这是为什么?我需要更新我的PATH或者其他什么操作吗?

几天前我刚刚转换到OS X系统中,之前我是使用Windows系统的用户。所以我是一个完全的新手。


20个回答

286

是的,你需要确保~/.composer/vendor/bin目录在你系统的PATH中,你可以通过运行以下命令来检查:

echo $PATH

如果你在那里看不到它,那么你需要将这个添加到你的~/.bash_profile

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

12
这是我到处都找到的答案!但它并没有解决我的问题... valet 仍然显示“command not found”错误。还有其他可能被一些不熟练的开发人员忽略的东西吗? - nclsvh
19
也许您正在使用zsh? 如果是这样,请将/.composer/vendor/bin添加到/.zshrc中的export PATH。 - halfred
2
如果仍然无法正常工作,那么您需要关闭并重新打开终端。 - hatemjapo
7
对于我使用的Ubuntu 18.04系统而言,路径略有不同。由于某些原因,路径为~/.config/composer/vendor/bin/ - Fred Lai
3
我直接使用nano ~./bash_profile修改了.bash_profile文件,在文件末尾添加了export PATH="$PATH:$HOME/.composer/vendor/bin",保存后重启终端,它就可以正常工作了(我的操作系统版本是Big Sur)。 - Kyle Yeo
显示剩余6条评论

69
如果你看到错误信息"valet: command not found",很可能是因为PHP的Composer没有在你的PATH变量中,例如:
$ valet install
-bash: valet: command not found

您可以通过运行以下命令确认是否成功安装了Laravel Valet

ls -al ~/.composer/vendor/bin/valet

如果成功,您将看到Valet在Composer的bin目录中的符号链接指向vendor目录中的Laravel:

~/.composer/vendor/bin/valet@ -> ../laravel/valet/valet

如果要测试您的PATH是否缺少Composer,请直接运行Valet命令:

~/.composer/vendor/bin/valet --version
如果您看到 Laravel 版本号(例如 Laravel Valet 2.0.4),这表示 Valet 已安装但您需要更新您的 PATH 变量,以便全局使用 valet 命令。请在终端中执行以下命令,将 Composer 添加至您的 shell PATH:
export PATH=$PATH:~/.composer/vendor/bin

为使更改生效,您需要退出并重新打开终端窗口或标签页。

或者,您可以简单地加载您的shell配置文件,而无需退出当前会话:

source ~/.bash_profile

如果您使用的是不同的shell环境或者使用的不是Bash,您需要代替它的配置文件进行源化(例如:.bashrc.zshrcconfig.fish)。


这个测试流程对我有用,我只是忘记重新启动终端了。 - Björn Hjorth
第一步似乎可以工作,但是当我尝试执行 source ~/.bash_profile 时,会出现 ~/.bash_profile No such file or directory 的错误提示。无论我是否关闭并重新打开一个新的终端窗口,我仍然会得到 -bash: valet: command not found 的错误提示。 - BBaysinger
1
这个答案提到了包括~/.composer在内的路径,但是我需要将它们更改为~/.config/composer,因为本页面上的其他答案也提到了这一点。 - Ryan
我不得不更新我的路径到/.config/composer。否则这个工作非常好。 - Second2None
这个流程在我的 M1 Mac 上完美运行,谢谢! - DevSem

38

我正在使用oh-my-zsh,因此:

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

您可以将.zshrc替换为.bashrc


2
这对我有用。Zsh似乎需要您的完整主文件夹路径,而不是〜/ - sevenpointsix
6
这是一条命令行指令,将 $HOME/.composer/vendor/bin 路径添加到环境变量 $PATH 中,以便在终端中可以直接运行安装在此路径下的 Composer 包。该指令会将这个设定写入 ~/.zshrc 配置文件中。 - Mohamed Saleh
1
我尝试了网上发布的许多不同解决方案,结果发现只需使用$HOME而非~即可解决问题。谢谢! - krx
1
@MohamedSaleh 那也适用于我。 :) - Blues Clues
这对我也有效。Mac M1 - undefined

23

你只需要使用:

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

然后

valet install

准备好了 :)


非常感谢,这对我有用。我的路径之前指向 '/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'。 - Lukas

17

请确保~/.composer/vendor/bin目录在您的系统PATH中,您可以通过运行以下命令来检查:

echo $PATH

如果没有的话,打开您的~/.bash_profile文件并添加以下代码:

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

然后运行:

composer global require laravel/valet --dev

完成后,请运行:

valet install

15

如果 valet install 无法正常工作,但是 ~/.composer/vendor/bin/valet --version 可以正常工作,则尝试通过以下方式进行安装:

~/.composer/vendor/bin/valet install

要查看这是否有效,请检查

valet --version

12
如果你正在使用zsh,就不能将~作为主目录的路径,应该使用$HOME代替。
在.zshrc文件中,不要添加以下内容:
export PATH=$PATH:~/.composer/vendor/bin

添加这个路径将解决问题:
export PATH=$PATH:$HOME/.composer/vendor/bin

1
这对于.zshrc文件来说是正确的,但位置可能不同,例如$HOME/.config/composer/vendor/bin。 - Min Somai
也对我有用。 - Nick
这个命令在我的macOS Ventura上也起作用了,只需要运行以下命令:export PATH=~/.composer/vendor/bin:$PATH - Franz

8
如果您进行了全新的安装,可能会发现PATH变量不包含您的主目录路径。因此,添加$HOME变量需要按照以下方式进行:

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


.composer 之前添加 $HOME/ 就可以解决问题了!看起来 ZSH 不理解或无法正确地使用 ~ 目录。 - Mark Shust at M.academy

7
这个命令可能会解决你的问题。
test -d ~/.composer && bash ~/.composer/vendor/bin/valet install || bash ~/.config/composer/vendor/bin/valet install

4
在Ubuntu 18.04中执行以下操作:
echo "export PATH=$PATH:$HOME/.config/composer/vendor/bin" >> ~/.bashrc
source ~/.bashrc

适用于Ubuntu 20.04。 - paulobunga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接