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.