如何从任何地方运行作曲家?

Posted

技术标签:

【中文标题】如何从任何地方运行作曲家?【英文标题】:How to run composer from anywhere? 【发布时间】:2012-07-05 04:51:21 【问题描述】:

我刚刚在我的/usr/bin 文件夹中安装了composer,所以当我从那个文件夹运行php composer.phar 时,我会得到关于composer 的帮助信息。但是,当我尝试从其他文件夹运行相同的文件时,我得到Could not open input file: composer.phar

如何毫无问题地从任何地方拨打php composer.phar

【问题讨论】:

【参考方案1】:

你可以做一个global installation (archived guide):

由于 Composer 使用当前工作目录,因此可以以系统范围的方式安装它。

    进入你的路径中的目录,如 cd /usr/local/bin 获取 Composer curl -sS https://getcomposer.org/installer | php 使 phar 可执行 chmod a+x composer.phar 进入项目目录 cd /path/to/my/project 像往常一样使用 Composer composer.phar install 您可以选择重命名 composer.phar composer 更容易 >

更新:有时在/usr/local/bin下载不能或不想下载(有些遇到用户权限问题或访问受限),在这种情况下,你可以试试这个

    打开终端 curl -sS http://getcomposer.org/installer | php -- --filename=composer chmod a+x composer sudo mv composer /usr/local/bin/composer

更新 2:对于 Windows 10 和 PHP 7,我推荐 this tutorial (archived)。就个人而言,我在 PHP 7.3 VC15 x64 非线程安全版本之前安装了Visual C++ Redistributable for Visual Studio 2017 x64(在PHP for Windows 页面的侧面菜单中检查两者的版本)。仔细阅读,可能启用扩展部分可能会有所不同(extension=curl 而不是extension=php_curl.dll)。像魅力一样工作,祝你好运!

【讨论】:

他们没有注意到您需要重命名文件才能使用 composer 调用它 - 很好的说明。 @AndrewAtkinson 或者,您可以在下载前重命名curl -sS https://getcomposer.org/installer | php -- --filename=composer 只是想说声谢谢。我在理解底层逻辑时遇到了麻烦,getcomposer.org 本身在解释这一点方面做得并不好,所以谢谢!我得到了它的工作。【参考方案2】:

composer.phar 可以单独运行,无需在其前面加上php。这应该可以解决您的问题(因为 bash 的 $PATH 和 php 的 include_path 不同)。

【讨论】:

您也可以将其重命名为仅作曲家,然后您可以简单地执行composer install 我的 composer.phar 已安装。 (我使用 php composer.phar 进行了检查)但是,我没有得到位置。如何找到 composer.phar 位置的路径?我正在使用 UBUNTU。 如果你可以运行php composer.phar,那么它可能在你的当前目录中。 我认为您希望全局访问您的 composer.phar。移动它并创建一个别名:sudo mv composer.phar /usr/local/bin/ 然后alias composer='/usr/local/bin/composer.phar' 我做了一个sudo mv composer.phar /usr/local/bin/composer。之后我可以在任何地方使用composer install【参考方案3】:

如何通过终端从任何地方(在 MacOS X 上)运行 Composer

背景:

实际上在 getComposer 网站上明确指出,使用以下 curl 命令安装 Composer,

curl -sS https://getcomposer.org/installer |php

而且它确实做了它打算做的事情。然后它说将 composer.phar 移动到目录 /usr/local/bin/composer 然后 composer 将在全球范围内可用,通过使用以下命令行终端!

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

问题:

所以导致我求助于谷歌的问题是当我在 Mac OS X 终端中执行上述行时,它说,权限被拒绝。如下:

mv: rename composer.phar to /usr/local/bin/composer: Permission denied

答案:

关注link 就像魅力一样让我找到了解决方案,我对此表示感谢。我刚刚错过的是上述“移动”命令行之前的 sudo 命令。 现在我的移动命令如下:

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

它直接提示您进行身份验证并查看您是否被授权。所以如果你输入了一个有效的密码,那么移动就完成了,你可以检查一下是否全局安装了composer,使用下面这行代码。

composer about

希望这个回答能帮助你拓宽视野,最终解决你的问题。

干杯!

【讨论】:

> 然后它说将 composer.phar 移动到目录 /usr/local/bin/composer /usr/local/bin/composer 不是目录;它是在此之前称为composer.phar 的文件的新名称。 在 macOS Sierra 上为我工作。【参考方案4】:

首先安装作曲家installation documentation中提到的作曲家。我只是在这里添加以供参考。

curl -sS https://getcomposer.org/installer | php

然后将文件移动到“/usr/local/bin”。

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

尝试运行composer -V。如果你得到像Composer version 这样的输出,后面跟着版本号,那么作曲家就安装成功了。

如果你得到像composer: command not found 这样的任何输出,则表示使用以下命令为作曲家创建别名。所以它将在全球范围内执行。

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

现在如果你运行composer -V 意味着你将得到Composer Version 的输出,后跟版本号。

希望这会对某人有所帮助。

【讨论】:

【参考方案5】:

只需将其移至/usr/local/bin 文件夹并删除扩展名

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

【讨论】:

正是我所需要的,谢谢【参考方案6】:

只需运行此命令即可全局安装 composer

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

【讨论】:

这解决了我询问 sudoer 密码的问题。谢谢【参考方案7】:

对于 MAC 和 LINUX,请使用以下过程:

将composer.phar所在的目录添加到你的PATH中:

export PATH=$PATH:/yourdirectory

然后将 composer.phar 重命名为 composer:

mv composer.phar composer

【讨论】:

【参考方案8】:

您可以进行简单的全局安装以从任何地方运行它

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

https://getcomposer.org/doc/00-intro.md#globally 网站推荐这种方式。在 Ubuntu 14.04 上运行良好没问题。 这样你就不需要像 php compomser.phar show 那样做例子,你只需在你正在使用的任何目录中做 composer show

【讨论】:

【参考方案9】:

要从其他位置运行它,您可以使用程序附带的 composer 程序。它基本上是一个 bash 脚本。如果您没有它,您只需将以下代码复制到文本文件中即可创建一个

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "$dir/composer.phar" $*

然后将文件保存在您的 bin 文件夹中,并将其命名为 composer,不带任何文件扩展名。然后将 bin 文件夹添加到您的环境变量 f

【讨论】:

【参考方案10】:

其中一些可能是由于您的服务器运行的操作系统造成的。我最近迁移到了一个运行 Ubuntu 的新托管环境。将这个别名 alias composer="/path/to/your/composer" 添加到 .bashrc 或 .bash_aliases 最初不起作用,原因有两个:

默认情况下,服务器运行的是 csh,而不是 bash。要检查这是否是您的问题,请运行echo $0。如果返回的是 -csh,您需要将其更改为 bash,因为 Composer 运行的某些进程使用 csh/tcsh 会失败

要更改它,首先通过运行cat /etc/shells 检查您的服务器上是否可以使用 bash。如果在返回的列表中看到 bin/bash,则可以通过运行 chsh -s /bin/csh 将默认值更改为 bash。

现在,此时,您应该可以运行 Composer,但通常在 Ubuntu 上,您必须在每个会话中通过运行 source ~/.bashrcsource ~/.bash_profile 来获取 Bash 脚本来加载脚本。这是因为,在大多数情况下,Ubuntu 不会加载您的 Bash 脚本,因为它会将 .profile 作为默认脚本加载。

要在您打开会话时加载您的 Bash 脚本,请尝试将其添加到您的 .profile 中(如果您的 Bash 脚本是 .bashrc - 如果是 .bash_profile 或其他,请相应地修改):

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

要进行测试,请关闭会话并重新加载。如果它工作正常,运行 composer -vwhich composer 应该会按预期运行。

【讨论】:

以上是关于如何从任何地方运行作曲家?的主要内容,如果未能解决你的问题,请参考以下文章

didReceiveRemoteNotification presentViewController 在运行时从任何地方

作曲家:找不到课,找不到我错的地方

有没有一个地方可以在一个地方获取 laravel `vendor` 文件夹?

XAMPP:作曲家返回错误而不是创建新的laravel项目

如何从任何地方完成 Qt 程序?

如何从任何地方关闭 Angular UI Modal