我正在尝试使用Composer安装特定版本的软件包。我尝试了composer install
和composer require
,但他们正在安装最新版本的软件包。如果我想要旧版本怎么办?
答案 0 :(得分:372)
composer require vendor/package:version
例如:
composer require refinery29/test-util:0.10.2
答案 1 :(得分:61)
在版本号中添加双引号以使用插入符号运算符。
composer require middlewares/whoops "^0.4"
答案 2 :(得分:15)
只需使用php composer.phar require
例如:
php composer.phar require doctrine/mongodb-odm-bundle 3.0
也可以安装。
https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install
答案 3 :(得分:14)
如@alucic所述,使用:
composer require vendor/package:version
或者您可以使用:
composer update vendor/package:version
您可能应该查看this StackOverflow post about differences between composer install and composer update。
有关版本号的问题,您可以查看Composer documentation on versions,但简而言之:
因此,通过 Tilde ,您将获得补丁的自动更新,但次要和主要版本将不会更新。但是,如果您使用 Caret ,则将获得补丁程序和次要版本,但不会获得主要(重大更改)版本。
Tilde版本被认为是“更安全”的方法,但是如果您使用可靠的依赖项(维护良好的库),则Caret版本应该不会有任何问题(因为较小的更改不应破坏更改。
答案 4 :(得分:2)
假设您要安装Laravel Collective。当前版本为6.x,但您需要版本5.8。您可以运行以下命令:
composer require "laravelcollective/html":"^5.8.0"
文档中显示了一个很好的示例: https://laravelcollective.com/docs/5.5/html
答案 5 :(得分:0)
在您的composer.json
中,您可以输入:
{
"require": {
"vendor/package": "version"
}
}
然后从包含composer install
的目录运行composer update
或composer.json
。有时候,对于我来说,作曲家很费神,所以我将以composer clear-cache; rm -rf vendor; rm composer.lock
之前的composer install
开始,以确保它变得新鲜。
当然,正如其他答案指出的那样,您可以从终端运行以下命令:
composer require vendor/package:version
以及版本控制:
-Composer's official versions article
-Ecosia Search
答案 6 :(得分:0)
我试图要求来自不同存储库的开发分支而不是最新版本,但我遇到了同样的问题,但上述问题对我不起作用:(
一段时间后,我在文档中看到,在 dev 分支的情况下,您需要在版本中添加“dev-”前缀,以下内容完美运行。
composer require [vendorName]/[packageName]:dev-[gitBranchName]
答案 7 :(得分:0)
Curl 可用于下载特定版本:
curl -O "https://getcomposer.org/download/1.10.17/composer.phar"
chmod a+x composer.phar
sudo mv composer.phar /usr/local/bin/composer
答案 8 :(得分:0)
composer 需要包名版本号
示例:作曲家需要“laravel/tinker”:“^2.5”