2013-05-24 11 views
164

Potrzebuję zainstalować tylko 1 pakiet dla mojej dystrybucji SF2 (DoctrineFixtures).Jak zaktualizować pojedynczą bibliotekę za pomocą programu Composer?

Kiedy biegnę

php composer.phar update 

uzyskać

- Updating twig/twig (dev-master 39d94fa => v1.13.0) 
    The package has modified files: 
    M CHANGELOG 
    M doc/filters/batch.test 
    M doc/filters/index.rst 
    M doc/filters/url_encode.rst 
    M doc/functions/index.rst 
    M doc/tags/index.rst 
    M doc/tests/index.rst 
    M lib/Twig/Autoloader.php 
    M lib/Twig/Compiler.php 
    M lib/Twig/CompilerInterface.php 
-10 more files modified, choose "v" to view the full list 

Wydaje ostatni developer edytowany dużo plików wewnątrz dostawcy.

Aby obejść ten problem, próbowałem

php composer.phar update <package_name> 

ale to nie wydają się działać.

Jak mogę zaktualizować/zainstalować tylko 1 bibliotekę z pliku composer.json?

+0

Twój używasz odpowiedniego polecenia . Czy możesz pokazać nam swoje 'composer.json'? – cheesemacfly

+0

spróbuj użyć poleceń podanych w mojej odpowiedzi, w przeciwnym razie podaj opis błędu, który otrzymujesz (to znaczy, kompozytor, jeśli kompozytor narzeka). – nifr

+0

Twój composer.json może odnosić się do alternatywnego rozwidlenia projektu. – iconoclast

Odpowiedz

292

Aby zainstalować doctrine/doctrine-fixtures-bundle wersji 2.1.* i minimalną stabilność @dev użyj:

composer.phar require doctrine/doctrine-fixtures-bundle:2.1.*@dev 

następnie zaktualizować tylko ten jeden pakiet:

composer.phar update doctrine/doctrine-fixtures-bundle 
+4

Pomocne może być: uruchamianie aktualizacji/instalowanie z opcją -vvv (tryb verbose: aktualizacja composer.phar - pakiet/pakiet vvv) może czasami być lepsze, ponieważ czasami pojawia się interaktywny monit, który może być w inny sposób ukryty – timhc22

+0

Co jeśli są błędy inne pakiety? (W moim przypadku instalacja została zatrzymana). –

+0

Co z wymaganiem wyzwala aktualizację innego pakietu? – hakre

92

Jeśli chcesz po prostu zaktualizować kilka pakietów, a nie wszystkie, możesz je wymienić jako takie:

php composer.phar update vendor/package:2.* vendor/package2:dev-master 

Można również użyć symboli wieloznacznych zaktualizować kilka pakietów na raz:

php composer.phar update vendor/* 
  • --prefer-źródła: Instalacja pakietów z source kiedy będzie dostępny.
  • --prefer-dist: Zainstaluj pakiety od dist, gdy są dostępne.
  • --ignore-platform-reqs: ignorować php, hhvm, lib-* i ext-* wymagania i wymusić instalację nawet jeśli lokalna maszyna nie spełnia tych. Zobacz także platformconfig option.
  • --dry-run: Symulacja polecenia bez wykonywania żadnych czynności.
  • --dev: Zainstaluj pakiety wymienione w require-dev (jest to zachowanie domyślne).
  • --no-dev: Pomiń instalowanie pakietów wymienionych w require-dev. Generowanie autoloadera pomija reguły autoload-dev.
  • --no-autoloader: Pomija generowanie autoloadera.
  • --no-skrypty: Pomija wykonywanie skryptów zdefiniowanych w pliku composer.json.
  • --nie-wtyczki: Wyłącza wtyczki.
  • --no-progress: Usuwa wyświetlanie postępu, które może zepsuć się z niektórymi terminalami lub skryptami, które nie obsługują znaków Backspace.
  • --optymalizuj autoloader (-o): Konwertuj automatyczne ładowanie PSR-0/4 na mapę klas, aby uzyskać szybszy autoloader. Jest to zalecane szczególnie w przypadku produkcji, ale może zająć trochę czasu, więc nie jest obecnie wykonywane domyślnie.
  • --lock: Aktualizuje tylko skrót pliku blokady, aby wyłączyć ostrzeżenie o tym, że plik blokady jest nieaktualny.
  • --z zależnościami niezależnymi: Dodaj również wszystkie zależności pakietów umieszczonych na białej liście na białej liście.
  • - stabilny-stabilny: Preferuj stabilne wersje zależności.
  • - Preferuj najniższy: Preferuj najniższe wersje zależności. Przydatny do testowania minimalnych wersji wymagań, zwykle używany z --prefer-stable.
4

Można zasadniczo wykonać następujące czynności, aby zainstalować również nowy pakiet.

php composer.phar require 

następnie terminal poprosi o podanie nazwy pakietu do wyszukiwania.

$ Search for a package []: //Your package name here 

Następnie terminal będzie prosić wersję pakietu (jeśli chcesz mieć najnowszą wersję po prostu zostawić to pole puste)

$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here 

Potem wystarczy nacisnąć klawisz Enter. Terminal poprosi o inną paczkę, jeśli nie chcesz instalować innej, po prostu naciśnij klawisz Return i gotowe.

2

Aby upewnić się, że kompozytor aktualizacji jeden pakiet jest już zainstalowany na ostatniej wersji w ramach ograniczeń Wersja skonfigurowanych w composer.json usunąć pakiet od producenta, a następnie wykonać:

php composer.phar update vendor/package 
+3

Znajdziesz tę samą sugestię w tym poście: https://github.com/composer/composer/issues/3112. PS: Głosowanie bez wyjaśnienia jest tak łatwe i bezużyteczne. – Tsounabe

Powiązane problemy