ChatGPT解决这个技术问题 Extra ChatGPT

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

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

如何毫无问题地从任何地方调用php composer.phar


q
quantme

您可以执行 global installation (archived guide):

由于 Composer 使用当前工作目录,因此可以以系统范围的方式安装它。更改为路径中的目录,例如 cd /usr/local/bin Get 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 Non Thread Safe 版本之前安装了 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 本身并不能很好地解释这一点,所以谢谢!我让它工作了。
M
Maerlyn

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
C
Community

如何通过终端从任何地方(在 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 上为我工作。
M
Mahendran Sakkarai

首先安装作曲家 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 的输出,后跟版本号。

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


p
pacholik

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

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

正是我需要的,谢谢
T
Tahir Yasin

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

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

这解决了我询问 sudoer 密码的问题。谢谢
C
Chris Burton

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

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

export PATH=$PATH:/yourdirectory

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

mv composer.phar composer

u
user3257693

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

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 ,在你正在使用的任何目录中。


M
Muhammad Raihan Muhaimin

要从其他位置运行它,您可以使用程序附带的 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


k
karolus

其中一些可能是由于您的服务器正在运行的操作系统。我最近迁移到了一个运行 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 应该会按预期运行。