Skip to content

Composerのバージョンダウングレードと特定バージョンのインストール方法

問題点

Composer 2を使用している際に、次のようなエラーが発生することがあります:

You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.

このエラーは、プロジェクトのプラグインや依存パッケージがComposer 2と互換性がない場合に発生します。新しいプロジェクトをセットアップする際や、既存のプロジェクトを引き継いだ場合に、互換性の問題を回避するために特定のバージョンのComposerを使用する必要があります。

解決方法

方法1: メジャーバージョンの切り替え(推奨)

現在インストールされているComposerを使って、簡単にバージョン1系と2系を切り替えることができます。

bash
composer self-update --1
bash
composer self-update --2

この方法は、最新のバージョン1系または2系に切り替える場合に最適です。

方法2: 特定のバージョンを指定してインストール

特定のマイナーバージョンを指定したい場合は、バージョン番号を直接指定します。

bash
composer self-update 1.10.12
bash
composer self-update 2.0.7

Ubuntu/Linuxユーザー向け

Linuxシステムでは、権限の問題が発生する可能性があるため、sudoを使用してください:

bash
sudo -H composer self-update 1.10.14

方法3: 前のバージョンにロールバック

最近の更新を元に戻す必要がある場合:

bash
composer self-update --rollback

方法4: 新規インストール時に特定バージョンを指定

システムにComposerを新規インストールする際に特定のバージョンを指定する方法:

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

方法5: composer.pharを使用したプロジェクト固有のバージョン管理

プロジェクトごとに異なるComposerバージョンを使用したい場合は、composer.pharファイルを直接使用します:

  1. Composer公式ダウンロードページから特定バージョンのcomposer.pharをダウンロード
  2. プロジェクトのルートディレクトリに配置
  3. 以下のように実行:
bash
php composer.phar install

PHPの特定バージョンを使用する場合:

bash
php7.1 composer.phar require [package-name]

ベストプラクティス

重要

Composer 1系は2022年10月にサポートが終了しています。互換性の問題に対処する場合は、プラグインの更新やComposer 2への移行を検討することをお勧めします。

  1. 一時的な対策として使用: バージョンダウングレードは一時的な解決策として使用し、できるだけ早くプロジェクトをComposer 2に対応させましょう
  2. ドキュメント化: チームメンバーが同じバージョンを使用できるように、プロジェクトのREADMEに使用するComposerバージョンを記載しましょう
  3. Dockerの利用: 開発環境の一貫性を保つために、Dockerコンテナ内で特定のComposerバージョンを使用することを検討しましょう

トラブルシューティング

権限エラーが発生する場合:

  • Linux/Mac: sudoを付けて実行
  • Windows: 管理者権限でコマンドプロンプトを実行

変更が反映されない場合:

bash
composer clear-cache

まとめ

Composerのバージョン管理は簡単で、self-updateコマンドを使用すればさまざまなバージョンに切り替えることができます。ただし、長期的にはプロジェクトを最新のComposerバージョンに対応させ、セキュリティアップデートやパフォーマンス改善の恩恵を受けられるようにすることが重要です。