Jak zainstalować określoną wersję pakietu za pomocą Composer?


Odpowiedzi:



110

Dodaj podwójne cudzysłowy, aby użyć operatora karetki w numerze wersji.

composer require middlewares/whoops "^0.4"

3
Nie widzę momentu, w którym można by podać nazwę i wersję pakietu jako dwa osobne argumenty.
x-yuri

1
@ x-yuri przekazywanie nazwy i wersji pakietu jako osobnych argumentów działa dla mnie przy użyciu kompozytora 1.5.1
bryonbean

Chociaż technicznie nie jest to „poprawna” odpowiedź na pytanie PO, jest to prawdopodobnie bardziej przydatne dla większości ludzi.
Rich Court

19

wystarczy użyć php composer.phar wymagają

Na przykład :

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

Dostępne również z instalacją.

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


Dla przypomnienia, dodawanie wiązań niestandardowych nie jest dostępne z install- tylko z require. Jeśli miałeś zamiar przejść do konkretnej wersji i zarejestrować composer.lockplik, możesz, ale będziesz musiał użyć, composer requirea następnie przywrócić zmianę do composer.jsonpóźniej.
mindplay.dk

Wersja jako osobny argument? Czy to kiedykolwiek było dostępne?
x-yuri

10

Jak wspomniano w @alucic, użyj:

composer require vendor/package:version

lub możesz użyć:

composer update vendor/package:version

Prawdopodobnie powinieneś przejrzeć ten post StackOverflow na temat różnic między instalacją kompozytora a aktualizacją kompozytora .

W związku z pytaniem o numery wersji możesz przejrzeć dokumentację Composer dotyczącą wersji , ale w skrócie:

  • Zakres wersji tyldy ( ~ ) - ~ 1.2.3 odpowiada> = 1.2.3 < 1.3.0
  • Zakres wersji Caret ( ^ ) - ^ 1.2.3 jest równoważny> = 1.2.3 < 2.0.0

Tak więc, dzięki Tilde będziesz otrzymywać automatyczne aktualizacje łat, ale mniejsze i większe wersje nie będą aktualizowane. Jednakże, jeśli użyjesz Caret , dostaniesz łatki i mniejsze wersje, ale nie dostaniesz większych (przełamujących zmiany) wersji.

Wersja Tilde jest uważana za „bezpieczniejszą”, ale jeśli używasz niezawodnych zależności (dobrze utrzymanych bibliotek), nie powinieneś mieć żadnych problemów z wersją Caret (ponieważ niewielkie zmiany nie powinny niszczyć zmian.



0

W swoim composer.jsonmożesz umieścić:

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

następnie uruchom composer installlub composer updatez katalogu zawierającego composer.json. Czasami, dla mnie kompozytor jest hinky, więc zacznę composer clear-cache; rm -rf vendor; rm composer.lockprzed composer installaby upewnić się, że coraz świeże rzeczy.


Oczywiście, jak wskazują inne odpowiedzi, z terminalu można uruchomić następujące polecenia:

composer require vendor/package:version

A w sprawie wersjonowania:
- Oficjalny artykuł kompozytora
- Ecosia Search

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.