Wie installiere ich eine bestimmte Version des Pakets mit Composer?


Antworten:



110

Fügen Sie doppelte Anführungszeichen hinzu, um den Caret-Operator in der Versionsnummer zu verwenden.

composer require middlewares/whoops "^0.4"

3
Ich sehe keinen Zeitpunkt, an dem Sie den Paketnamen und die Version als zwei separate Argumente übergeben könnten .
X-Yuri

1
@ x-yuri Paket Name und Version als separate Argumente übergeben funktioniert für mich mit Composer 1.5.1
Bryonbean

Obwohl dies technisch gesehen nicht die "richtige" Antwort auf die Frage des OP ist, ist dies für die meisten Menschen wahrscheinlich nützlicher.
Rich Court

19

Verwenden Sie einfach PHP Composer.phar erforderlich

Beispielsweise :

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

Auch bei Installation erhältlich.

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


Für den Datensatz ist das Hinzufügen benutzerdefinierter Einschränkungen nicht mit install- nur mit verfügbar require. Wenn Sie gehofft haben, zu einer bestimmten Version zu wechseln und Ihre composer.lockDatei einzuchecken , können Sie dies, aber Sie composer requiremüssten die Änderung verwenden und anschließend zurücksetzen composer.json.
mindplay.dk

Version als separates Argument? War das jemals verfügbar?
X-Yuri

9

Verwenden Sie, wie @alucic erwähnt, Folgendes:

composer require vendor/package:version

oder Sie können verwenden:

composer update vendor/package:version

Sie sollten diesen StackOverflow-Beitrag wahrscheinlich über Unterschiede zwischen der Composer-Installation und dem Composer-Update lesen .

Im Zusammenhang mit Fragen zu Versionsnummern können Sie die Composer-Dokumentation zu Versionen lesen , aber hier kurz:

  • Tilde-Versionsbereich ( ~ ) - ~ 1.2.3 entspricht> = 1.2.3 < 1.3.0
  • Der Caret-Versionsbereich ( ^ ) - ^ 1.2.3 entspricht> = 1.2.3 < 2.0.0

Mit Tilde erhalten Sie automatische Updates von Patches, kleinere und größere Versionen werden jedoch nicht aktualisiert. Wenn Sie Caret verwenden, erhalten Sie Patches und Nebenversionen, jedoch keine Hauptversionen (Änderungen).

Die Tilde-Version wird als "sicherer" Ansatz angesehen. Wenn Sie jedoch zuverlässige Abhängigkeiten (gut gepflegte Bibliotheken) verwenden, sollten Sie keine Probleme mit der Caret-Version haben (da geringfügige Änderungen keine Änderungen bewirken sollten.


5

Angenommen, Sie möchten Laravel Collective installieren. Es ist derzeit in Version 6.x, aber Sie möchten Version 5.8. Sie können den folgenden Befehl ausführen:

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

Ein gutes Beispiel finden Sie hier in der Dokumentation: https://laravelcollective.com/docs/5.5/html


0

In Ihre composer.jsonkönnen Sie setzen:

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

dann ausführen composer installoder composer updateaus dem Verzeichnis mit composer.json. Manchmal ist der Komponist für mich hinky, also fange ich composer clear-cache; rm -rf vendor; rm composer.lockvorher composer installan, um sicherzugehen, dass es frische Sachen gibt.


Wie die anderen Antworten zeigen, können Sie vom Terminal aus natürlich Folgendes ausführen:

composer require vendor/package:version

Und zur Versionierung:
- Artikel über die offiziellen Versionen des Komponisten
- Ecosia Search

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.