29

「グローバル」にインストールしようとすると、Cygwin で Composer が正しく動作しません。

composer.phar を /usr/local/bin/composer に入れて実行しようとすると、エラーが発生します。

Could not open input file: /usr/local/bin/composer
4

13 に答える 13

64

同じ問題につまずいて、解決策を見つけました。念のため、もう一度調べなければならない場合に備えて、ここに投稿します。

  1. binの直下にディレクトリを設定し/home/my-usernameます。

    cd ~
    mkdir bin
    
  2. composer.phar(または増加しているその他の気の利いた新しい PHP imps のいずれか) を~/binディレクトリに移動し、その実行ビットを設定ください。

    # Notice how I got rid of the superfluous `.phar` extension
    mv /path/to/composer.phar ~/bin/composer
    chmod +x ~/bin/composer
    
  3. ディレクトリを検索パスcygwinに含めるように指示します。~/bin

    ファイル~/.bash_profileを開き、次の段落のコメントを外します ...

    # Set PATH so it includes user's private bin if it exists
    if [ -d "${HOME}/bin" ] ; then
      PATH="${HOME}/bin:${PATH}"
    fi
    
  4. さて、最も重要な部分は次のとおりです。

    Win のネイティブ PHP が Unix スタイルのパスを解決するのに役立つラッパー スクリプト (Windows がパスの処理方法を認識していないため、問題の原因となってい/cygdrive/...ます)。

    cd ~/bin
    touch php
    chmod +x php
    

    編集後、ラッパー スクリプト~/bin/phpは次のようになります。

    #!/bin/bash
    
    # e.g. php="/cygdrive/c/Program Files (x86)/php/php.exe"
    php="/path/to/php.exe"
    
    for ((n=1; n <= $#; n++)); do
        if [ -e "${!n}" ]; then
            # Converts Unix style paths to Windows equivalents
            path="$(cygpath --mixed ${!n} | xargs)"
    
            case 1 in
                $(( n == 1 )) )
                    set -- "$path" "${@:$(($n+1))}";;
                $(( n < $# )) )
                    set -- "${@:1:$((n-1))}" "$path" ${@:$((n+1)):$#};;
                *)
                    set -- "${@:1:$(($#-1))}" "$path";;
            esac
        fi
    done
    
    "$php" "$@"
    
  5. ここでシェルを再起動すると、#!/usr/bin/env phpシバンに出くわすたびに PHP インタープリターが正しく呼び出されるはずです。以下を発行するだけです。

    composer --help
    
于 2013-02-15T22:42:35.240 に答える
14

これはどう?

  1. ~/.bashrc に以下を追加します。alias composer='php c:\\your\\path\\to\\composer.phar'
  2. 実行して cygwin を再起動するか、bashrc をリロードします。source ~/.bashrc

Cygwin のネイティブ php.exe と XAMPP の Windows 固有のものの両方を使用して動作します。

于 2015-02-15T13:03:57.230 に答える
7

代わりにプロキシを構築することがうまくいくと思います:

  • composer.phar を /usr/local/bin/composer.phar に置きます
  • 以下を使用して、bash プロキシを /usr/local/bin/composer として作成します。

    #!/bin/sh
    c:/path/to/php c:/path/to/composer.phar $@
    
  • chmod +x /usr/local/bin/composer

于 2012-09-05T08:39:34.063 に答える
4

私も同じ問題を抱えていました。composer インストーラーからの最終指示を読んだ後、$PATH 変数を再ロードする必要があると表示されます。コンピューターを再起動し、Composer ビンを にリンクしました/usr/local/bin

最初に composer bin を見つけます: /cygdrive/c/ProgramData/ComposerSetup/bin/composer

次に、Seldaekの回答によると、機能しないシンボリックリンクを試した後、次のことを行いました:

nano /usr/local/bin/composer

#!/bin/sh
/cygdrive/c/ProgramData/ComposerSetup/bin/composer $@

chmod +x /usr/local/bin/composer

そしてそれは働いています。

于 2014-02-19T10:54:40.543 に答える
3

私がしたこと(非常に簡単):

  • Windowsインストーラーを使用してComposerを通常どおりインストールします
  • composer次のようなタイプの Cygwin コンソールを開きますCould not open input file: /c/route/to/your/composer/installation/bin
  • composer='composer.bat'bashプロファイルまたはbashrcなどにエイリアスを作成します
  • 終わり

Windows 8.1 を実行しています

于 2014-01-13T19:45:10.087 に答える
0

最も簡単な方法は、WebサイトからWindowsインストーラーを使用してcomposerをインストールし、「C:\ ProgramData\Composer」から2つのファイル「composer」と「composer.phar」をPATH変数にあるディレクトリにコピーすることです。たとえば、ファイルをcygwinの/bin/ディレクトリにコピーできます。その後、composerの「Windowsバージョン」を再度アンインストールできます。

アップデート!これは私がしたことです:

  1. CygwinPortsプロジェクトからPHPと必要なモジュールをインストールします
  2. 最新の作曲家のスナップショットをダウンロードする
  3. 'composer.phar'の名前を'composer'に変更し、/ usr / local/binに保存します
  4. /bin/dash.exeを開き、「/ usr / bin/rebaseall」を実行します
  5. また、4。でエラーが発生した場合は、composerを今すぐ実行する必要があります
于 2013-03-03T14:29:14.997 に答える
0

Cygwin/XAMPP セットアップで次のような問題を解決しました。

  • composer.pharXAMPPのphpディレクトリにインストール

  • composerXAMPP のphpディレクトリに指定された実行可能な Bash スクリプトを作成します。

    #!/bin/bash
    script_dir=$(cygpath -w $(dirname $0))
    php "$script_dir/composer.phar" $@
    

    cygpath -wパスを Windows 形式のパスに変換するために使用することが重要です。

  • Cygwin でXAMPP のphpディレクトリにアクセスできることを確認し$PATHます。

    $ export PATH=$PATH:/cygdrive/i/dev/server/xampp/php
    


composerこれで、どこからでも問題なく 呼び出すことができます。

    $ composer -V
    Composer version 264f433ca3f007d39568b3722b4bf418f58ba15b
于 2013-05-10T13:35:16.253 に答える
0

babun を使用することをお勧めします。これは cygwin ベースですが、協定によってパッケージをインストールできます。これを実行できます。

協定のインストール php php-json php-phar

php -r "readfile(' https://getcomposer.org/installer ');" | | php

それから楽しんでください。

于 2015-07-22T08:22:15.890 に答える
0

/usr/local/bin/composerファイルを追加して修正しました:

nano /usr/local/bin/composer

次の内容で:

#!/bin/bash
/cygdrive/c/wamp/bin/php/php5.4.3/php "C:\wamp\bin\php\php5.4.3\composer"

基本的に、cygwin パスではなく、Windows スタイルのパスで PHP を呼び出す必要があります。

于 2013-05-17T09:58:24.320 に答える
0

コンポーザーを Cygwin 内でグローバルに動作させるのは大変な作業です...

私が思いついた解決策:

  1. グローバルに使用しないでください。Windows インストールから PHP CLI を使用している場合、Cygwin が使用する Linux パスを認識しません。

    私が行ったことは、composer を使用するすべてのプロジェクトのベース ディレクトリに配置し、../composer.phar を実行して実行することです。

    この方法で問題なく動作し、ほぼ世界中で利用できます...

  2. ダウンロードし、Cygwin 内で独自の PHP バイナリをコンパイルします...はい、やり過ぎです。

于 2012-09-05T07:57:54.363 に答える