如何将~/.composer/vendor/bin目录添加到您的PATH中?

273

我正在使用Ubuntu 14.04,一直尝试各种方法来安装Laravel,但都失败了。每次尝试都会出现错误信息。现在我正在尝试快速入门文档中的第一种方法,也就是通过Laravel Installer进行安装,但它要求"确保将~/.composer/vendor/bin目录放入您的PATH中,这样当您在终端中运行Laravel命令时,Laravel可执行文件才能被找到。"那么我的问题是,我该怎么做呢?这可能是一个简单的问题,但我真的很沮丧,希望得到任何帮助。

22个回答

593
将此文件夹加入PATH环境变量,请键入:
export PATH="$PATH:$HOME/.composer/vendor/bin"

这将把文件夹添加到您现有的 PATH 中,但它仅在当前终端会话中生效。

如果您希望自动设置它,则取决于您使用的 shell。对于 bash,您可以通过您喜欢的编辑器将此行附加到 $HOME/.bashrc,或在 shell 上键入以下内容。

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

为了检查它是否有效,请注销并重新登录,或执行以下操作

source ~/.bashrc

在shell中执行。

附:对于其他没有~/.bashrc的系统,您也可以将其放入~/.bash_profile中。

附加说明:对于更新的laravel版本,您需要将$HOME/.config/composer/vendor/bin放到PATH中。

进一步地,如果您想将此文件夹添加到其他shells或GUI中的路径上,您应该将所述 export命令追加到~/.profile中(参见https://help.ubuntu.com/community/EnvironmentVariables)。


1
在这里运行得非常好,在Ubuntu 14.04上。 如果似乎无法正常工作,您可能需要注销/登录和/或打开一个新的终端窗口。 - Michiel
4
在设置zsh的.zshrc时,应该使用$HOME而不是~来表示composer路径。不确定在bash中是否需要这样做,但在zsh中这肯定是必要的。 - phaberest
45
需要注意的是,在运行 Laravel 5.1 的 Ubuntu 16.04 上,路径为:~/.config/composer/vendor/bin。 - waweru
1
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc 缺少.config目录 然后执行 source ~/.bashrc - CecilMerrell aka bringrainfire
1
就我而言,在Ubuntu 16.04上,.composer/vendor/bin和.config/composer/vendor/bin都包含“laravel”,所以两者都可以使用。 - Ken
显示剩余6条评论

142

详细说明:

在你的~/.bashrc文件中添加以下内容:

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

然后重新加载:

source ~/.bashrc

检查是否已正确添加:

echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/web/bin:~/.composer/vendor/bin

谢谢!我对Unix不太熟悉,但这很容易理解!(而且还省了不少钱!) - sunnysidedown916
我回映的$PATH内容中不包含composer部分。我已经以各种可能的方式添加了它超过100次,重新启动了大约5次,并重新加载了bashrc文件。没有任何效果。有任何想法吗? - nclsvh
每次我使用Laravel时,我都需要执行source ~/.bashrc。这对我来说是最好的答案。 - Brainmaniac

68
在已全局安装Composer的Ubuntu 16.04 LTS中,这对我有效。请编辑您的主目录中的.bashrc文件,并将路径放置到位于/your/home/.config/composer/vendor/bin的composer二进制文件夹。
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc

source ~/.bashrc

如果不起作用,请验证composer二进制文件目录的路径,并关闭并重新打开终端。否则,请尝试在Ubuntu中注销并登录。

在Ubuntu 18.04中也适用。感谢@chifliiiii提供的反馈。


1
曾经使用过 Parrot OS 3.8。 - Abdelsalam Shahlol
1
当你运行composer laravel安装程序时,它会更改目录到Changed current directory to /home/username/.config/composer。./composer.json已根据此答案中的路径进行了更新。 - ottz0
1
这是在Ubuntu 17.10上为我工作的那个。谢谢。 - GabMic
3
在20.04上运行得非常顺畅。 - Renato Francia

40

在Yosemite(OS X 10.10.5)上设置PATH,请使用以下命令:

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bash_profile

重新加载要么退出终端并重新启动,要么使用以下命令:

source ~/.bash_profile

帮助了我,希望能帮到其他人!


2
谢谢@forca001,在我的.zshrc文件中,使用~时它没有起作用,最后使用$HOME终于成功了。 - phaberest
4
不错!这个方法在我的Mac OS X El-Captain上也行得通。 - Askar
2
这是唯一在我的运行OSX Mojave的Mac上有效的答案。非常感谢! - Ryan Coolwebs
1
这应该是被接受的答案。在 MacOS Majave 14.x 上工作过。 - OMi Shah

14

我尝试了上述所有方法,但它们对我都没有用。

我只是将这个复制到我的终端中,然后它就起作用了。

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

1
@grit45,你能否解释一下为什么它有点起作用了吗? - Abhishek Goel
1
这个问题是关于将某个目录添加到路径中,而不是如何安装composer。 - MrTux

10

我的路径没有 /.composer,只有 /composer,所以我的路径是:

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

这对我在Ubuntu 20.04上起了作用。


9

以下是针对 Mac OS X 10.9.5 版本设置 PATH 的方法。

由于使用用户配置文件,我尝试添加 $HOME:

echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc

当您不使用用户档案时:

echo 'export PATH="$PATH:~/.composer/vendor/bin"' >> ~/.bashrc

然后重新加载:

source ~/.bashrc

我希望你能够受益。

5

打开Mac终端:

vi ~/.bashrc

如果您没有使用过vi,它可能一开始看起来有点奇怪,因此请按顺序小心输入以下代码:

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

按ESC键

:
w

按下回车键

:
q

按下回车键

现在你应该已经回到了正常的终端视图。

检查composer的路径是否正确:

cd ~/.composer
echo $PATH

如果您看到包括文件目录的路径(例如 / Users / JeffStrongman / .composer / vendor / bin),那么您就可以开始了。
cd

然后运行你的安装程序。我在配置我的Mac使用Laravel Valet时遇到了这个问题。

示例(可选)

valet install

4
在我的Ubuntu 22.04上,这个方法有效:
export PATH="$PATH:$HOME/.config/composer/vendor/bin"

3
Composer的二进制文件目录被设置并存储在bin-dir配置变量中,具体取决于您的设置。运行命令composer global config bin-dir --absolute将告诉您全局Composer二进制文件目录的绝对路径。使用此命令,您可以修改您的.bash_profile,将其添加到您的PATH中,确切地按照其配置。
# Add Composer bin-dir to PATH if it is installed.
command -v composer >/dev/null 2>&1 && {
        COMPOSER_BIN_DIR=$(composer global config bin-dir --absolute 2> /dev/null)
        PATH="$PATH:$COMPOSER_BIN_DIR";
}
export PATH

2
不错,使用安静的 -q 标志也可以避免 /dev/null 重定向。对于使用 fish 的用户,命令是 fish_add_path (composer global config bin-dir --absolute -q) - Nathan Baulch

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