如何从任何地方运行作曲家?
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
获取 Composercurl -sS https://getcomposer.org/installer | php
使 phar 可执行chmod a+x composer.phar
进入项目目录cd /path/to/my/project
像往常一样使用 Composercomposer.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 ~/.bashrc
或 source ~/.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 -v
或 which composer
应该会按预期运行。
【讨论】:
以上是关于如何从任何地方运行作曲家?的主要内容,如果未能解决你的问题,请参考以下文章
didReceiveRemoteNotification presentViewController 在运行时从任何地方