如何使用Composer安装特定版本的包?

我正在尝试使用Composer安装包的特定版本。我尝试了composer installcomposer require,但他们正在安装最新版本的软件包。如果我想要一个旧版本呢?

591481 次浏览

使用PHP编写器即可。phar要求

例如:

php composer.phar require doctrine/mongodb-odm-bundle 3.0

安装时也可以使用。

https://getcomposer.org/doc/03-cli.md#require # EYZ0 < / p >

# EYZ0

例如:

# EYZ0

添加双引号以在版本号中使用"^" caret operator

composer require middlewares/whoops "^0.4"

在你的composer.json中,你可以放:

{
"require": {
"vendor/package": "version"
}
}

然后从包含composer.json的目录中运行composer installcomposer update。有时,对我来说,作曲家是棘手的,所以我会从composer clear-cache; rm -rf vendor; rm composer.lock开始在composer install之前,以确保它得到新鲜的东西。


当然,正如其他答案所指出的那样,你可以从终端运行以下命令:

composer require vendor/package:version

和版本控制:
- # EYZ0 < br > - # EYZ0 < / p >

假设你想安装Laravel Collective。它目前的版本是6。X版本,但你想要5.8版本。执行如下命令:

composer require "laravelcollective/html":"^5.8.0"
文档中给出了一个很好的例子: # EYZ0 < / p >

正如@alucic提到的,使用:

composer require vendor/package:version

或者你可以用:

composer update vendor/package:version

您可能应该查看这篇关于编写器安装和编写器更新之间差异的StackOverflow帖子

关于版本号的问题,你可以查看关于版本的编写器文档,但简而言之:

  • 波浪号版本范围() - ~1.2.3相当于>=1.2.3 <1.3.0
  • 插入符号版本范围() - ^1.2.3等价于>=1.2.3 <2.0.0

因此,使用波浪号,您将获得补丁的自动更新,但次要和主要版本将不会更新。然而,如果你使用脱字符号,你会得到补丁和小版本,但你不会得到主要(破坏性的变化)版本。

波浪号版本被认为是一种“更安全”的方法,但如果您使用的是可靠的依赖关系(维护良好的库),则插入号版本应该不会有任何问题(因为微小的更改不应该是破坏性的更改)。

我试图从不同的存储库而不是最新版本中要求一个开发分支,我有同样的问题,上面没有为我工作:(

过了一段时间,我在文档中看到,在dev分支的情况下,你需要在版本前加上'dev-'前缀,下面的方法非常有效。

composer require [vendorName]/[packageName]:dev-[gitBranchName]