composer:パッケージの正確なバージョンを見つける方法は?


103

たとえばモノログなど、別のライブラリに依存するライブラリAを書いているとします。

monologの最新バージョンをインストールしたいので、これをcomposer.jsonの中に入れます。

{
    "require": {
        "monolog/monolog": "*.*.*"
    }
}

次に、実行し$ php composer.phar installます。

composer.lock内にインストールされているバージョンが見つかるはずでしたが、そこにはありませんでした。

{
    "hash": "d7bcc4fe544b4ef7561918a8fc6ce009",
    "packages": [
        {
            "package": "monolog/monolog",
            "version": "dev-master",
            "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7"
        }
    ],
    "packages-dev": null,
    "aliases": [

    ],
    "minimum-stability": "dev",
    "stability-flags": [

    ]
}

ライブラリを特定のバージョンのセットに関連付けたいので、バージョンが必要です。たとえば、バージョンが1.3.5であることがわかった場合、composer.jsonに次のように記述します。

    "require": {
        "monolog/monolog": "1.3.*"
    }

何か案は?

回答:


170

私はそれが古い質問であることを知っています、しかし...

composer.phar show

現在インストールされているすべてのパッケージとそのバージョン情報を表示します。(これは以前のバージョンのComposerで、現在非推奨の-iオプションを使用している場合にのみ表示されていました。)

詳細を表示するには、パッケージの名前も指定します。

composer.phar show monolog/monolog

コミットMD5ハッシュ、ソースURL、ライセンスタイプなど、多くのことが表示されます。


11
php composer.phar show -aそしてphp composer.phar show package/nameまた、両方の役に立ちます。
ビショップ

1
以下のためにdev-master、それはまた、コミットハッシュを示しているため、パッケージ、これは、便利です。したがって、GitHubに移動して、そのコミットハッシュを見つけ、日付を確認し、その前に最も近い日付のタグを見つけて、実際に使用している「バージョン」を確認する必要があります
andrewtweber

2
composer.lockファイルにもあります。
Hafiz 2017年


13

1.7.5または1.x-devまたはdev-masterのようなパッケージバージョン番号として出力を取得したいだけの場合。

Linuxコンソールスニペット:

composer show 'monolog/monolog' | grep 'versions' | grep -o -E '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1;

5

技術的に「dev-master」は、最終的にそこで使用したバージョンです。これは開発ブランチであり、最新バージョンです。

composerパッケージの使用可能なバージョンを探すのに最適な場所は、パッケージのインストール時にComposerがバージョンをロードする場所であるため、Packagistです。モノログのバージョンはhttp://packagist.org/packages/monolog/monologにリストされています。


2

すべて表示、特にpackage.jsonファイルがない場合は、packagist.orgから利用可能なパッケージを取得することができます。

composer show "monolog/monolog" --all

また、バージョンを指定することもできます

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