Composerを使用して特定のバージョンのパッケージをインストールする方法


343

Composerを使用してパッケージの特定のバージョンをインストールしようとしています。私が試したcomposer installし、composer require彼らは、パッケージの最新バージョンをインストールしています。古いバージョンが必要な場合はどうなりますか?


回答:



110

バージョン番号でキャレット演算子を使用するには、二重引用符を追加します。

composer require middlewares/whoops "^0.4"

3
パッケージ名バージョンを2つの別々の引数として渡すことができる時点はありません。
x-yuri

1
@ x-yuriがパッケージ名とバージョンを別々の引数として渡すと、composer 1.5.1を使用して動作します
bryonbean

技術的にはこれはOPの質問に対する「正しい」答えではありませんが、これはおそらくほとんどの人にとってより有用です。
リッチコート

19

php composer.phar requireを使用するだけです

例えば ​​:

php composer.phar require doctrine/mongodb-odm-bundle 3.0

インストールでも利用できます。

https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install


記録のために、カスタムの制約を追加することはありませんで利用可能なinstallだけで- require。特定のバージョンに切り替えてcomposer.lockファイルをチェックインしたい場合は可能ですが、使用composer requireして変更をcomposer.json後で元に戻す必要があります。
mindplay.dk 2017

個別の引数としてのバージョン?それは今まで利用可能でしたか?
x-yuri

9

@alucicが言及したように、以下を使用します。

composer require vendor/package:version

またはあなたが使うことができます:

composer update vendor/package:version

Composerのインストールとcomposerの更新の違いについては、おそらくこのStackOverflowの投稿を確認する必要があります。

バージョン番号に関する質問に関連して、バージョンに関するComposerのドキュメントを確認できますが、ここでは簡単に説明します

  • チルダバージョン範囲()-〜1.2.3は> = 1.2.3 < 1.3.0と同等
  • キャレットのバージョン範囲(^)-^ 1.2.3は> = 1.2.3 < 2.0.0と同等

したがって、Tildeを使用すると、パッチの自動更新が行われますが、マイナーバージョンとメジャーバージョンは更新されません。ただし、Caretを使用する場合、パッチとマイナーバージョンは取得できますが、メジャー(重大な変更)バージョンは取得できません。

ティルダバージョンは「より安全な」アプローチと見なされますが、信頼できる依存関係(よく管理されたライブラリ)を使用している場合は、キャレットバージョンで問題が発生しないはずです(マイナーな変更によって変更が破壊されないためです。



0

あなたの中にcomposer.json、あなたは置くことができます:

{
    "require": {
        "vendor/package": "version"
    }
}

次に、composer installまたはcomposer updateを含むディレクトリから実行しcomposer.jsonます。時々、私にとって、作曲家はほのぼのしているので、それが新鮮なものであることを確認するために、composer clear-cache; rm -rf vendor; rm composer.lockcomposer installにまず始めましょう。


もちろん、他の回答が指摘しているように、ターミナルから次のコマンドを実行できます。

composer require vendor/package:version

そして、上のバージョン管理:
- 作曲の公式バージョンの記事
- Ecosia検索

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.