Composerを使用してパッケージ管理を初めて行おうとしたとき、エラーなどによって意図した通り動作しない場合があります。
トラブルが発生したときに、まず最初に行うべきチェック項目がgetcomposer.orgに掲載されているので、この内容を元にチェック項目を紹介します。
Composerでのトラブル時に最初にチェックすること
diagnoseで診断を行う
誰かに質問する前に一般的な問題なのか確認するためにcomposer diagnose
コマンドを実行してみてください。以下のように、すべての項目にOKが表示され、エラーメッセージが出なければ次の段階に進みます。
> composer diagnose
You are running Composer with SSL/TLS protection disabled.
Checking composer.json: OK
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
...
self-updateでComposer自体を最新にする
Composerを使用していて何らかの問題が発生した場合は、まず、Composerが最新版なのかを確認することをお勧めします。最新版への更新はcomposer self-update
コマンドで行えます。また現状のバージョンはcomposer --versionで確認できます。composer自体のバージョンアップは行いたくないが最新かどうかのチェックだけ行いたい場合は、--preview
オプションをつけると良いです。
> composer --version
Composer version 1.4.2 2017-05-17 08:17:52
> composer self-update --preview
You are already using composer version 1.4.2 (preview channel).
getcomposer.orgにある最新のinstallerでチェックを行う
コマンドラインから、curl -sS https://getcomposer.org/installer | php -- --check
というコマンドを実行して、インストールに関する問題がないのかチェックできます。
> curl -sS https://getcomposer.org/installer | php -- --check
All settings correct for using Composer
※上記のコマンドを実行したときにSSLのエラーが出る場合は、--ssl-no-revokeをつけるとうまくいく場合があります(ですが、SSLチェックが行われないのでお勧めはしません)
> curl -sS https://getcomposer.org/installer | php -- --check
curl: (35) schannel: failed to receive handshake, SSL/TLS connection failed
> curl --ssl-no-revoke -sS https://getcomposer.org/installer | php -- --check
All settings correct for using Composer
作業中に作られたキャッシュファイルなどをいったん消してみる
composerコマンドを実行すると、パッケージ情報のキャッシュや取得したパッケージ、composer.lockなどをローカルのPCに作成します。このため、問題の解決中に意図しないファイルたちが残っているせいでトラブルが発生している可能性があります。
vendorフォルダに内容や、作成されたcomposer.lockのエントリーでの発生する衝突の問題を切り分けるために、rm -rf vendor && composer update -v
コマンドでダウンロードしたファイルを削除してから再アップデートを行ってみます。
また、composer clear-cache
を実行して、Composerのキャッシュディレクトリをクリアしてみます。