我正在尝试使用Composer安装包的特定版本。我尝试了composer install和composer require,但他们正在安装最新版本的软件包。如果我想要一个旧版本呢?
当前回答
正如@alucic提到的,使用:
composer require vendor/package:version
或者你可以用:
composer update vendor/package:version
你可能应该回顾一下这篇关于编写器安装和编写器更新之间差异的StackOverflow帖子。
关于版本号的问题,你可以查看Composer关于版本的文档,但简而言之:
波浪号版本范围(~)- ~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]
正如@alucic提到的,使用:
composer require vendor/package:version
或者你可以用:
composer update vendor/package:version
你可能应该回顾一下这篇关于编写器安装和编写器更新之间差异的StackOverflow帖子。
关于版本号的问题,你可以查看Composer关于版本的文档,但简而言之:
波浪号版本范围(~)- ~1.2.3相当于>=1.2.3 <1.3.0 插入符号版本范围(^)- ^1.2.3等价于>=1.2.3 <2.0.0
因此,与波浪你会得到补丁的自动更新,但次要和主要版本将不会更新。然而,如果你使用插入,你会得到补丁和小版本,但你不会得到主要(破坏性的变化)版本。
波浪号版本被认为是一种“更安全”的方法,但如果您使用的是可靠的依赖关系(维护良好的库),则插入号版本应该不会有任何问题(因为微小的更改不应该是破坏性的更改)。
假设你想安装Laravel Collective。它目前的版本是6。X版本,但你想要5.8版本。执行如下命令:
composer require "laravelcollective/html":"^5.8.0"
文档中给出了一个很好的例子: https://laravelcollective.com/docs/5.5/html
你的作曲家。Json,你可以放:
{
"require": {
"vendor/package": "version"
}
}
然后从包含composer.json的目录中运行composer install或composer update。有时候,对我来说,composer很棘手,所以我将从composer clear-cache开始;Rm -rf供应商;rm作曲家。在编译器安装之前锁定,以确保它得到新的东西。
当然,正如其他答案所指出的那样,你可以从终端运行以下命令:
composer require vendor/package:version
关于版本控制: -作曲家的官方版本的文章 - Ecosia Search
添加双引号以在版本号中使用“^”插入符。
composer require middlewares/whoops "^0.4"
推荐文章
- 致命错误:未找到类“SoapClient”
- 我目前使用的是哪个版本的CodeIgniter ?
- 合并两个PHP对象的最佳方法是什么?
- 如何使HTTP请求在PHP和不等待响应
- 发送附件与PHP邮件()?
- 如何获得当前的路线在Symfony 2?
- 用PHP删除字符串的前4个字符
- mysql_connect():[2002]没有这样的文件或目录(试图通过unix:///tmp/mysql.sock连接)在
- 一个函数的多个返回值
- 在PHP中使用foreach循环时查找数组的最后一个元素
- 检查数组是否为空
- PHP DOMDocument loadHTML没有正确编码UTF-8
- PHP在个位数数前加上前导零
- PHPMailer字符编码问题
- 删除多个空白空间