2012-05-21 84 views
48

假设我正在编写一个库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.*" 
    } 

任何想法?

回答

-1

你可以在github上找到它们。目前

Composer是在1.1.0 https://github.com/Seldaek/monolog/tags

只要抓住你认为是你需要有一个标签。

+3

提问者想知道是由作曲家在他的项目,而不是一个库的最新版本安装的是什么版本的库。 – aalaap

1

从技术上讲,“dev-master”是你最终在那里使用的确切版本。它是开发分支,因此是最新版本。

查找作曲家套装可用版本的最佳位置是Packagist,因为这是作曲家在安装套装时加载版本的地方。独白版本列于http://packagist.org/packages/monolog/monolog

99

我知道这是一个老问题,但...

composer.phar show 

将显示所有已安装的软件包及其版本的信息。 (这表现在使用现在不推荐使用-i选项只有当作曲家的早期版本。)

要了解更多详细信息,指定包的名称,以及:

composer.phar show monolog/monolog 

,将显示很多东西,包括提交MD5哈希,源URL,许可证类型等。

+9

'php composer.phar show -a'和'php composer.phar show package/name'也是有帮助的。 – bishop

+0

对于'dev-master'包,这很有用,因为它也显示了提交哈希。所以你需要去GitHub,找到提交哈希,检查日期,然后找到最近的日期标记,才能真正找出你正在使用的“版本” – andrewtweber

+1

它也可以在composer.lock中找到文件。 – Hafiz

1

它的一个非常古老的问题,但添加答案,以便它可以帮助某人, 您也可以通过上传composer.josn和composer.lock文件

http://www.drcomposer.com

希望这可以帮助某人。

5

您可以使用作曲家显示是这样的:

composer show package/name 
+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/17661951) –