композитор: как найти точную версию пакета?

<p>предположим, я пишу библиотеку а, которая зависит от другой библиотеки, например, монолог.</p><p>я хочу установить последнюю версию monolog, поэтому я просто поместил это в composer.json:</p><pre><code>{ "require": { "monolog/monolog": "*.*.*" } } </code></pre><p>затем я запускаю <code>$ php composer.phar install</code>.</p><p>я ожидал найти установленную версию внутри composer.lock, но ее там нет:</p><pre><code>{ "hash": "d7bcc4fe544b4ef7561918a8fc6ce009", "packages": [ { "package": "monolog/monolog", "version": "dev-master", "source-reference": "2eb0c0978d290a1c45346a1955188929cb4e5db7" } ], "packages-dev": null, "aliases": [ ], "minimum-stability": "dev", "stability-flags": [ ] } </code></pre><p>мне нужна версия, потому что я хочу привязать свою библиотеку к определенному набору версий, например: если я нахожу версию 1.3.5, в моем composer.json я хотел бы добавить что-то вроде этого:</p><pre><code> "require": { "monolog/monolog": "1.3.*" } </code></pre><p>есть идеи?</p>

<p>я знаю, что это старый вопрос, но ...</p><pre><code>composer.phar show </code></pre><p>покажет все установленные на данный момент пакеты и информацию о их версии. (это было показано в предыдущих версиях composer только при использовании устаревшей опции <code>-i</code>.)</p><p>чтобы увидеть более подробную информацию, укажите также название пакета:</p><pre><code>composer.phar show monolog/monolog </code></pre><p>это покажет много вещей, включая коммит md5 хеш, исходный url, тип лицензии и т.д.</p>

<p>вы можете использовать composer как показано ниже:</p><pre><code>composer show package/name </code></pre>

<p>если вам просто интересно получить вывод в виде номера версии пакета, например: <strong>1.7.5</strong> или <strong>1.x-dev</strong> или <strong>dev-master</strong> знак равно.</p><p>фрагмент консоли linux:</p><pre><code>composer show 'monolog/monolog' | grep 'versions' | grep -o -e '\*\ .+' | cut -d' ' -f2 | cut -d',' -f1; </code></pre>

<p>это очень старый вопрос, но добавление ответа, чтобы он мог кому-то помочь, вы также можете проверить его в интернете, загрузив файлы composer.josn и composer.lock.</p><p> <a href="http://www.drcomposer.com">http://www.drcomposer.com</a> </p><p>надеюсь, это может кому-то помочь.</p>

<p>технически "dev-master" - это именно та версия, которую вы там использовали. это ветка разработки, и, следовательно, самая последняя версия.</p><p>лучшее место для поиска доступных версий пакетов composer - <a href="http://packagist.org">packagist</a> , поскольку именно здесь composer загружает версии при установке пакетов. версии монологов перечислены в <a href="http://packagist.org/packages/monolog/monolog">http://packagist.org/packages/monolog/monolog</a> .</p>

<p>может быть полезно для <strong>laravel</strong> разработчиков, если вы хотите найти <code>laravel/framework</code> версию.<br> <code>composer show laravel/framework</code> может возвращать огромный список с другими зависимостями, например</p><pre><code>name : laravel/framework ... versions : * v5.7.27 ... autoload ... requires ... requires (dev) ... suggests ... conflicts ... replaces ... </code></pre><p>итак, используйте вместо этого <code>composer show laravel/f*</code>.<br> <code>f*</code> pattern будет искать все пакеты, начиная с "f".<br> результат <code>laravel/framework v5.7.27 the laravel framework.</code></p>