Estou tentando instalar uma versão específica de um pacote usando o Composer. Eu tentei composer install
e composer require
eles estão instalando a versão mais recente do pacote. E se eu quiser uma versão mais antiga?
Estou tentando instalar uma versão específica de um pacote usando o Composer. Eu tentei composer install
e composer require
eles estão instalando a versão mais recente do pacote. E se eu quiser uma versão mais antiga?
Respostas:
composer require vendor/package:version
por exemplo:
composer require refinery29/test-util:0.10.2
Adicione aspas duplas para usar o operador de sinal de intercalação no número da versão.
composer require middlewares/whoops "^0.4"
basta usar o php composer.phar exigir
Por exemplo :
php composer.phar require doctrine/mongodb-odm-bundle 3.0
Também disponível com instalação.
https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install
install
- somente com require
. Se você esperava mudar para uma versão específica e fazer check-in de seu composer.lock
arquivo, pode, mas precisaria usá-lo composer require
e reverter a alteração composer.json
posteriormente.
Como @alucic mencionado, use:
composer require vendor/package:version
ou você pode usar:
composer update vendor/package:version
Você provavelmente deve revisar esta postagem do StackOverflow sobre as diferenças entre a instalação e a atualização do compositor .
Relacionado à pergunta sobre números de versão, você pode revisar a documentação do Composer nas versões , mas aqui em resumo:
Portanto, com o Tilde, você receberá atualizações automáticas de patches, mas as versões menor e maior não serão atualizadas. No entanto, se você usar o Caret , obterá patches e versões secundárias, mas não obterá versões principais (que quebram alterações).
A Tilde Version é considerada uma abordagem "mais segura", mas se você estiver usando dependências confiáveis (bibliotecas bem mantidas), não deverá ter problemas com a Caret Version (porque pequenas alterações não devem interromper as alterações.
Suponha que você queira instalar o Laravel Collective. Atualmente, está na versão 6.x, mas você deseja a versão 5.8. Você pode executar o seguinte comando:
composer require "laravelcollective/html":"^5.8.0"
Um bom exemplo é mostrado aqui na documentação: https://laravelcollective.com/docs/5.5/html
No seu composer.json
, você pode colocar:
{
"require": {
"vendor/package": "version"
}
}
Em seguida, execute composer install
ou composer update
no diretório que contém composer.json
. Às vezes, para mim, o compositor é hinky, então eu vou começar composer clear-cache; rm -rf vendor; rm composer.lock
antes composer install
para ter certeza de que está recebendo coisas novas.
Obviamente, como as outras respostas apontam, você pode executar o seguinte no terminal:
composer require vendor/package:version
E no versionamento:
- Artigo das versões oficiais do compositor
- Ecosia Search