Come installare una versione specifica del pacchetto usando Composer?


Risposte:



110

Aggiungi doppie virgolette per utilizzare l'operatore di inserimento nel numero di versione.

composer require middlewares/whoops "^0.4"

3
Non vedo un momento nel quale potresti passare il nome e la versione del pacchetto come due argomenti separati.
x-yuri,

1
@ x-yuri passando il nome del pacchetto e la versione come argomenti separati funziona per me usando il compositore 1.5.1
bryonbean

Sebbene tecnicamente questa non sia la risposta "corretta" alla domanda del PO, questa è probabilmente più utile per la maggior parte delle persone.
Rich Court,

19

basta usare php composer.phar richiede

Per esempio :

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

Disponibile anche con installazione.

https://getcomposer.org/doc/03-cli.md#require https://getcomposer.org/doc/03-cli.md#install


Per la cronaca, l'aggiunta di vincoli personalizzati non è disponibile con install- solo con require. Se speravi di passare a una versione specifica e di effettuare il check-in del tuo composer.lockfile, puoi, ma dovresti usare composer requiree poi ripristinare la modifica in composer.jsonseguito.
mindplay.dk,

Versione come argomento separato? È mai stato disponibile?
x-yuri,

10

Come menzionato @alucic, usa:

composer require vendor/package:version

oppure puoi usare:

composer update vendor/package:version

Probabilmente dovresti rivedere questo post StackOverflow sulle differenze tra l'installazione del compositore e l'aggiornamento del compositore .

In relazione alla domanda sui numeri di versione, puoi consultare la documentazione di Composer sulle versioni , ma qui in breve:

  • Intervallo versione Tilde ( ~ ) - ~ 1.2.3 è equivalente a> = 1.2.3 < 1.3.0
  • Intervallo versione Caret ( ^ ) - ^ 1.2.3 è equivalente a> = 1.2.3 < 2.0.0

Quindi, con Tilde otterrai aggiornamenti automatici delle patch, ma le versioni minori e principali non verranno aggiornate. Tuttavia, se usi Caret otterrai patch e versioni minori, ma non otterrai versioni principali (modifiche non funzionanti).

La versione di Tilde è considerata un approccio "più sicuro", ma se si utilizzano dipendenze affidabili (librerie ben mantenute) non si dovrebbero avere problemi con la versione di Caret (poiché le modifiche minori non devono interrompere le modifiche.


5

Supponiamo di voler installare Laravel Collective. È attualmente alla versione 6.x ma si desidera la versione 5.8. È possibile eseguire il comando seguente:

composer require "laravelcollective/html":"^5.8.0"

Un buon esempio è mostrato qui nella documentazione: https://laravelcollective.com/docs/5.5/html


0

Nel tuo composer.jsonpuoi inserire:

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

quindi esegui composer installo composer updatedalla directory contenente composer.json. A volte, per me, il compositore è malizioso, quindi inizierò composer clear-cache; rm -rf vendor; rm composer.lockprima composer installper assicurarmi che stia ottenendo cose nuove.


Naturalmente, come indicano le altre risposte, è possibile eseguire quanto segue dal terminale:

composer require vendor/package:version

E sul controllo delle versioni:
- Articolo sulle versioni ufficiali del compositore
- Ricerca Ecosia

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.