「グローバル」にインストールしようとすると、Cygwin で Composer が正しく動作しません。
composer.phar を /usr/local/bin/composer に入れて実行しようとすると、エラーが発生します。
Could not open input file: /usr/local/bin/composer
「グローバル」にインストールしようとすると、Cygwin で Composer が正しく動作しません。
composer.phar を /usr/local/bin/composer に入れて実行しようとすると、エラーが発生します。
Could not open input file: /usr/local/bin/composer
同じ問題につまずいて、解決策を見つけました。念のため、もう一度調べなければならない場合に備えて、ここに投稿します。
bin
の直下にディレクトリを設定し/home/my-username
ます。
cd ~
mkdir bin
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
ディレクトリを検索パス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
さて、最も重要な部分は次のとおりです。
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" "$@"
ここでシェルを再起動すると、#!/usr/bin/env php
シバンに出くわすたびに PHP インタープリターが正しく呼び出されるはずです。以下を発行するだけです。
composer --help
これはどう?
alias composer='php c:\\your\\path\\to\\composer.phar'
source ~/.bashrc
Cygwin のネイティブ php.exe と XAMPP の Windows 固有のものの両方を使用して動作します。
代わりにプロキシを構築することがうまくいくと思います:
以下を使用して、bash プロキシを /usr/local/bin/composer として作成します。
#!/bin/sh
c:/path/to/php c:/path/to/composer.phar $@
chmod +x /usr/local/bin/composer
私も同じ問題を抱えていました。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
そしてそれは働いています。
私がしたこと(非常に簡単):
composer
次のようなタイプの Cygwin コンソールを開きますCould not open input file: /c/route/to/your/composer/installation/bin
composer='composer.bat'
bashプロファイルまたはbashrcなどにエイリアスを作成しますWindows 8.1 を実行しています
最も簡単な方法は、WebサイトからWindowsインストーラーを使用してcomposerをインストールし、「C:\ ProgramData\Composer」から2つのファイル「composer」と「composer.phar」をPATH変数にあるディレクトリにコピーすることです。たとえば、ファイルをcygwinの/bin/ディレクトリにコピーできます。その後、composerの「Windowsバージョン」を再度アンインストールできます。
アップデート!これは私がしたことです:
Cygwin/XAMPP セットアップで次のような問題を解決しました。
composer.phar
XAMPPのphp
ディレクトリにインストール
composer
XAMPP の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
babun を使用することをお勧めします。これは cygwin ベースですが、協定によってパッケージをインストールできます。これを実行できます。
協定のインストール php php-json php-phar
php -r "readfile(' https://getcomposer.org/installer ');" | | php
それから楽しんでください。
/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 を呼び出す必要があります。
コンポーザーを Cygwin 内でグローバルに動作させるのは大変な作業です...
私が思いついた解決策:
グローバルに使用しないでください。Windows インストールから PHP CLI を使用している場合、Cygwin が使用する Linux パスを認識しません。
私が行ったことは、composer を使用するすべてのプロジェクトのベース ディレクトリに配置し、../composer.phar を実行して実行することです。
この方法で問題なく動作し、ほぼ世界中で利用できます...
ダウンロードし、Cygwin 内で独自の PHP バイナリをコンパイルします...はい、やり過ぎです。