我正在尝试使用Composer安装特定版本的软件包。我尝试了composer install和composer require,但它们安装的是最新版本的软件包。如果我需要较旧的版本,该怎么办?
composer install
composer require
hiz5n14c1#
composer require vendor/package:version例如:composer require refinery29/test-util:0.10.2
composer require vendor/package:version
composer require refinery29/test-util:0.10.2
jdgnovmf2#
添加双引号以在版本号中使用"^" caret operator。
"^" caret operator
composer require middlewares/whoops "^0.4"
nfeuvbwi3#
正如@alucic提到的,用途:
也可以用途:
composer update vendor/package:version
您可能应该复习一下this StackOverflow post about differences between composer install and composer update。与版本号相关的问题,您可以查看Composer documentation on versions,但在这里简而言之:
因此,使用Tilde可以自动更新修补程序,但不会更新次要版本和主要版本。但是,如果使用Caret,则可以获得修补程序和次要版本,但不会获得主要(重大更改)版本。Tilde Version被认为是一种“更安全”的方法,但如果您使用的是可靠的依赖项(维护良好的库),则使用Caret Version应该不会有任何问题(因为微小的更改不应该是破坏性的更改)。
vmjh9lq94#
只使用php composer.phar需要例如:
php composer.phar require doctrine/mongodb-odm-bundle 3.0
也可通过安装获得。https://getcomposer.org/doc/03-cli.md#requirehttps://getcomposer.org/doc/03-cli.md#install
krugob8w5#
假设您要安装Laravel Collective。它目前的版本是6.x,但您需要5.8版本。您可以运行以下命令:
composer require "laravelcollective/html":"^5.8.0"
文档中显示了一个很好的示例:https://laravelcollective.com/docs/5.5/html
z31licg06#
在您的composer.json中,您可以放置:
composer.json
{ "require": { "vendor/package": "version" } }
然后从包含composer.json的目录中运行composer install或composer update。有时候,对我来说,composer是不可靠的,所以我会在composer install之前运行composer clear-cache; rm -rf vendor; rm composer.lock,以确保它得到新鲜的内容。当然,正如其他答案所指出的,您可以从终端运行以下命令:
composer update
composer clear-cache; rm -rf vendor; rm composer.lock
关于版本控制:
aelbi1ox7#
我试图要求一个开发分支从一个不同的存储库,而不是最新的版本,我有同样的问题,以上都不为我工作:(过了一段时间,我在文档中看到,在dev分支的情况下,你需要在版本前加上一个'dev-'前缀,下面的代码工作得很好。
composer require [vendorName]/[packageName]:dev-[gitBranchName]
7条答案
按热度按时间hiz5n14c1#
composer require vendor/package:version
例如:
composer require refinery29/test-util:0.10.2
jdgnovmf2#
添加双引号以在版本号中使用
"^" caret operator
。nfeuvbwi3#
正如@alucic提到的,用途:
也可以用途:
您可能应该复习一下this StackOverflow post about differences between composer install and composer update。
与版本号相关的问题,您可以查看Composer documentation on versions,但在这里简而言之:
因此,使用Tilde可以自动更新修补程序,但不会更新次要版本和主要版本。但是,如果使用Caret,则可以获得修补程序和次要版本,但不会获得主要(重大更改)版本。
Tilde Version被认为是一种“更安全”的方法,但如果您使用的是可靠的依赖项(维护良好的库),则使用Caret Version应该不会有任何问题(因为微小的更改不应该是破坏性的更改)。
vmjh9lq94#
只使用php composer.phar需要
例如:
也可通过安装获得。
https://getcomposer.org/doc/03-cli.md#requirehttps://getcomposer.org/doc/03-cli.md#install
krugob8w5#
假设您要安装Laravel Collective。它目前的版本是6.x,但您需要5.8版本。您可以运行以下命令:
文档中显示了一个很好的示例:https://laravelcollective.com/docs/5.5/html
z31licg06#
在您的
composer.json
中,您可以放置:然后从包含
composer.json
的目录中运行composer install
或composer update
。有时候,对我来说,composer是不可靠的,所以我会在composer install
之前运行composer clear-cache; rm -rf vendor; rm composer.lock
,以确保它得到新鲜的内容。当然,正如其他答案所指出的,您可以从终端运行以下命令:
关于版本控制:
aelbi1ox7#
我试图要求一个开发分支从一个不同的存储库,而不是最新的版本,我有同样的问题,以上都不为我工作:(
过了一段时间,我在文档中看到,在dev分支的情况下,你需要在版本前加上一个'dev-'前缀,下面的代码工作得很好。