【问题标题】:Composer list packages with installed version and latest versionComposer 列出已安装版本和最新版本的软件包
【发布时间】:2015-11-22 15:19:15
【问题描述】:

如标题所示,有没有什么命令可以同时列出已安装的包和这些包的最新版本?


编辑:

php composer.phar show

这会显示所有可用的软件包以及仅已安装版本的已安装软件包

php composer.phar show [package]

这样既可以获取安装版本也可以获取最新版本,但是如果安装了很多包就不方便了

【问题讨论】:

    标签: composer-php


    【解决方案1】:

    我认为

    php composer show -i
    

    就是你要找的。​​p>

    【讨论】:

    • 值得注意的是:“您正在使用已弃用的选项“已安装”。现在默认情况下只显示已安装的包。--all 选项可用于显示所有包。用 Composer 1.2.0 得到这个。
    【解决方案2】:

    作为作曲家的当前版本-i 选项告诉作曲家只显示已安装的版本已被弃用。

    所以如果你只想显示一个包的安装版本,语法是:

    composer show "package-name"
    

    如果您需要提取软件包的所有可用版本,请使用 --all 选项,如下所示:

    composer show "phpunit/phpunit" --all 
    

    【讨论】:

    • [composer show "phpunit/phpunit" --all] - 你知道如何将此命令的输出范围缩小到版本列表吗?因为还有一堆没用的信息。
    • OP 要求提供一种适用于多个包的解决方案。你能解释一下你的解决方案是如何解决这个要求的吗?
    • 为了改进这个答案,第一个例子应该是vendor-name/package-name,只是package-name 本身失败并显示“找不到包名称”。
    【解决方案3】:

    由于Composer v1.1(2016 年 5 月),您可以运行

    composer outdated

    【讨论】:

      【解决方案4】:

      使用这个:

      composer update --dry-run
      

      它提供您当前版本和最新版本的捆绑包

      【讨论】:

      • 不完全:它只显示哪些更新满足您的版本要求可用。例如,如果您需要2.*,但3.0.0 版本可用,composer install --dry-run 不会告诉您,它只会告诉您是否有更大的2.* 版本可用。 composer outdated 会,谢谢@daker。
      【解决方案5】:

      根据文档https://getcomposer.org/doc/03-cli.md#show

      composer show -l
      

      composer show --latest
      

      将“列出所有已安装的软件包,包括它们的最新版本”

      这是我的输出的几行:

      beberlei/assert                   v2.5    v2.7.8  Thin assertion library for...
      behat/transliterator              v1.1.0  v1.2.0  String transliterator
      clue/stream-filter                v1.3.0  v1.4.0  A simple and modern approa...
      fgrosse/phpasn1                   1.3.2   1.3.2   A PHP Framework that allow...
      

      这适用于 composer 1.2 和 1.5.2

      【讨论】:

        【解决方案6】:

        --outdated 选项

        也许,您正在寻找--outdated 选项。 它会产生这样的输出:

        zendframework/zend-db  2.9.2  2.9.3  Database abstraction layer, SQL...
        

        2.9.2 2.9.3 - 已安装和新的可用版本(根据 composer 文件中的说明)。

        --all 选项

        我猜--all 应该在一个包中为您工作。

        它会用星号显示您当前的版本。它看起来像这样:

        dev-master, v0.1.2-alpha.0, * v0.1.1-alpha.0, v0.1.0-alpha.1, v0.1.0-alpha.0, dev-develop
        

        所以,我已经安装了v0.1.1-alpha.0

        --available 选项

        另外,新版本还有--available 选项。

        --available (-a):仅列出可用的包。

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

        例子:

        composer show --available monolog/monolog 1.0.2
        

        在这种情况下,它将向可用的作曲家存储库、packagist.org 或您的自定义存储库发出请求。

        附:我的 GIT 版本:2.14.1

        【讨论】:

          【解决方案7】:

          为了只显示顶级包(在composer.json 中列出),我使用:

          composer show -t | grep -v "|--" | grep -v "\`--"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-13
            • 1970-01-01
            • 1970-01-01
            • 2020-10-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多