2012-07-04 27 views
62

我剛剛在我的/usr/bin文件夾中安裝了作曲家,因此從該文件夾運行php composer.phar時,我獲得了有關作曲家的幫助信息。但是,當我嘗試從其他文件夾運行同樣的文件時,我得到Could not open input file: composer.phar如何從任何地方運行作曲家?

如何從每個地方打電話php composer.phar沒問題?

回答

46

composer.phar可以自行運行,不需要以php作爲前綴。這應該解決你的問題(與bash的$ PATH和php的include_path不同)。

+9

也可以重命名它只是作曲,然後你可以簡單地做'作曲家install'。 – Seldaek

+0

我的composer.phar已安裝。 (我chekced使用PHP composer.phar)但是,我沒有得到的位置。如何找到composer.phar位置的路徑?我正在使用UBUNTU。 –

+0

如果你可以運行'php composer.phar',那麼它可能在你的當前目錄中。 – Maerlyn

85

你可以做一個global installation

因爲作曲家與當前工作目錄的作品有可能在全系統範圍的方式進行安裝。

  1. 變化轉換成你的路徑中的目錄一樣cd /usr/local/bin
  2. 獲取作曲curl -sS https://getcomposer.org/installer | php
  3. 充分利用藥業可執行chmod a+x composer.phar
  4. 更改到項目目錄cd /path/to/my/project
  5. 使用作曲,你通常會composer.phar install
  6. 您也可以選擇重命名composer.pharcomposer,使其更容易

更新:有時你不能或不想在/usr/local/bin下載(一些有經驗豐富的用戶權限問題或限制訪問),在這種情況下,你可以試試這個

  1. 開放端子
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. sudo mv composer /usr/local/bin/composer
+3

他們沒有注意到,你需要重命名文件,只用'composer'來調用它 - 這裏很好。 –

+2

@AndrewAtkinson或者,您可以在下載前使用'curl -sS https://getcomposer.org/installer | php - --filename = composer' – quantme

+0

只是想說這個感謝。我無法理解底層邏輯,而getcomposer.org本身在解釋這個方面做得不好,所以謝謝!我得到了它的工作。 –

1

對於從其他位置運行它,您可以使用該程序隨附的作曲程序。它基本上是一個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文件夾並將其命名爲作曲家裏面的文件沒有保存任何文件擴展名創建一個。然後bin文件夾添加到您的環境變量f

0

你可以做一個簡單的全局安裝在任何地方

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

16

如何通過終端上運行的作曲家無處不在(在MacOS X)

背景:

其實在getComposer網站就明確指出,通過使用下面的curl命令安裝作曲家,

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

而且它確實做它打算做的。然後它說要將composer.phar移動到目錄/usr/local/bin/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 about 

我希望這個答案能幫助你拓寬視野,最終解決你的問題。

乾杯!

+1

>然後它說要將composer.phar移動到目錄/ usr/local/bin/composer '/ usr/local/bin/composer'不是一個目錄;它是在此之前稱爲'composer.phar'的文件的新名稱。 – XedinUnknown

+1

在macOS Sierra上爲我工作。 – VSG24

+1

感謝mv –

13

首先安裝作曲家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其次是版本號。

希望這會幫助別人。

4

只需安裝作曲家全球

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

這解決了我的問題與要求sudoer密碼。謝謝 –

1

Mac和Linux上運行該命令使用以下步驟:

加入其中composer.phar位於你的目錄路徑:

export PATH=$PATH:/yourdirectory 

然後將composer.phar重命名爲composer:

mv composer.phar composer 
3

只要將它移動到/usr/local/bin文件夾,刪除擴展

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