LoginSignup
2
1

More than 5 years have passed since last update.

composer installで指定したバージョンと違うライブラリがインストールされたときの対処

Last updated at Posted at 2016-11-26

はじめに

composer installした際、composer.lockに記述されているバージョンとインストールされたライブラリのバージョンが違うというバグに遭遇したので、
その対処を書く。

対処

composer.lock のライブラリの詳細が書かれている箇所で、commit referenceが
そのバージョンを指しているかを確認する。

自分のときはmockeryで起こったので、それを例として示す

composer.lock
.
.
.
{
            "name": "mockery/mockery",
            "version": "0.8.0",
            "source": {
                "type": "git",
                "url": "https://github.com/padraic/mockery.git",
                "reference": "10ef0f8a63392f244e5b19de261b6a08eb8e4109"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/padraic/mockery/zipball/10ef0f8a63392f244e5b19de261b6a08eb8e4109",
                "reference": "10ef0f8a63392f244e5b19de261b6a08eb8e4109",
                "shasum": ""
            },
.
.

この例では、versionは 0.8.0 と書いてあるが、 sourceのreference, distの urlとreferenceは 0.7.2 を指しているので、 正しいcommitに書き換える。

composer.lock
.
.
.
{
            "name": "mockery/mockery",
            "version": "0.8.0",
            "source": {
                "type": "git",
                "url": "https://github.com/padraic/mockery.git",
                "reference": "35f0e18022f5538df9df8920a3d96c1761d63220"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/padraic/mockery/zipball/35f0e18022f5538df9df8920a3d96c1761d63220",
                "reference": "35f0e18022f5538df9df8920a3d96c1761d63220",
                "shasum": ""
            },
.
.

これで一旦vender以下を削除してcomposer installすればOK。

確認の手順はgithubで管理されているライブラリであれば、

  1. ライブラリのページに移動 https://github.com/padraic/mockery.git
  2. releasesをクリック https://github.com/padraic/mockery/releases
  3. versionとそれが指すコミットが、 同一かどうかをチェックする

という感じ

終わりに

話としてはこれで終わりで、原因は多分 composer update のバグだろうと思われるが、
最新(1.2.2)のバージョンでは発生していないのを確認したので、深く追求していない。
ちなみに composer update を行ったバージョンは 1.2.0。
需要があるとは思わないけど、いい感じの記事も見つけられず地味にハマったので、
同じバグに遭遇した人にヒットしたらいいなと思います。
self-update はこまめにやりましょう。
終わり。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1