455 Stimmen

Wie aktualisiere ich eine einzelne Bibliothek mit Composer?

Ich muss nur ein Paket für meine SF2 Distribution installieren (DoctrineFixtures).

Wenn ich ausführe

php composer.phar update

Ich bekomme

  - Aktualisierung von twig/twig (dev-master 39d94fa => v1.13.0)
    Das Paket hat modifizierte Dateien:
    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 weitere Dateien wurden modifiziert, wählen Sie "v", um die vollständige Liste anzuzeigen

Es scheint, als hätte der letzte Entwickler viele Dateien im vendor-Verzeichnis bearbeitet.

Um das zu umgehen, habe ich versucht

php composer.phar update 

Aber das scheint nicht zu funktionieren. Wie kann ich nur eine Bibliothek aus der composer.json aktualisieren/installieren?

732voto

Nicolai Fröhlich Punkte 49234

Um doctrine/doctrine-fixtures-bundle mit der Version 2.1.* und der minimalen Stabilität @dev zu installieren, verwenden Sie dies:

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

dann nur dieses einzelne Paket aktualisieren:

composer update doctrine/doctrine-fixtures-bundle

239voto

Wenn Sie nur einige Pakete aktualisieren möchten und nicht alle, können Sie sie wie folgt auflisten:

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

Sie können auch Platzhalter verwenden, um eine Reihe von Paketen auf einmal zu aktualisieren:

php composer.phar update vendor/*

Wie von @ZeroThe2nd kommentiert, müssen ZSH-Benutzer ihren vendor/* möglicherweise in Anführungszeichen setzen:

php composer.phar update "vendor/*"
  • --prefer-source: Installieren Sie Pakete aus source, wenn verfügbar.
  • --prefer-dist: Installieren Sie Pakete aus dist, wenn verfügbar.
  • --ignore-platform-reqs: Ignoriere Anforderungen von php, hhvm, lib-* und ext-* und erzwinge die Installation auch, wenn die lokale Maschine diese nicht erfüllt. Siehe auch die platform Konfigurationsoption.
  • --dry-run: Simulieren Sie den Befehl, ohne tatsächlich etwas zu tun.
  • --dev: Installieren Sie Pakete, die in require-dev aufgelistet sind (dies ist das Standardverhalten).
  • --no-dev: Überspringen Sie die Installation von in require-dev aufgelisteten Paketen. Die Generierung des Autoloaders überspringt die Regeln von autoload-dev.
  • --no-autoloader: Überspringt die Generierung des Autoloaders.
  • --no-scripts: Überspringt die Ausführung der in der composer.json definierten Skripte.
  • --no-plugins: Deaktiviert Plugins.
  • --no-progress: Entfernt die Fortschrittsanzeige, die sich auf einige Terminals oder Skripte auswirken kann, die Backspace-Zeichen nicht verarbeiten.
  • --optimize-autoloader (-o): Konvertiert PSR-0/4-Autoloading in eine Klassenkarte, um einen schnelleren Autoloader zu erhalten. Dies wird insbesondere für die Produktion empfohlen, kann jedoch etwas Zeit in Anspruch nehmen, so dass dies derzeit nicht standardmäßig durchgeführt wird.
  • --lock: Aktualisiert nur den Hash-Wert der Sperrdatei, um die Warnung über die veraltete Sperrdatei zu unterdrücken.
  • --with-dependencies: Fügen Sie auch alle Abhängigkeiten der auf der Whitelist stehenden Pakete zur Whitelist hinzu.
  • --prefer-stable: Bevorzugen Sie stabile Versionen von Abhängigkeiten.
  • --prefer-lowest: Bevorzugen Sie die niedrigsten Versionen von Abhängigkeiten. Nützlich zum Testen minimaler Versionen von Anforderungen, in der Regel in Verbindung mit --prefer-stable verwendet.

154voto

Adam Punkte 20147

Unterschied zwischen installieren, aktualisieren und erfordern

Annehmen des folgenden Szenarios:

composer.json

"parsecsv/php-parsecsv": "0.*"

Composer.lock-Datei

  "name": "parsecsv/php-parsecsv",
            "version": "0.1.4",

Die neueste Veröffentlichung ist 1.1.0. Die neueste Veröffentlichung von 0.* ist 0.3.2

installieren: composer install parsecsv/php-parsecsv

Dies wird Version 0.1.4 installieren, wie in der Sperrdatei angegeben.

aktualisieren: composer update parsecsv/php-parsecsv

Dadurch wird das Paket auf 0.3.2 aktualisiert. Die höchste Version gemäß Ihrer composer.json. Der Eintrag in composer.lock wird aktualisiert.

erfordern: composer require parsecsv/php-parsecsv

Dies wird die neueste Version 1.1.0 aktualisieren oder installieren. Ihre Dateien composer.lock und composer.json werden ebenfalls aktualisiert.

24voto

Wolfack Punkte 2329

Sie können den folgenden Befehl verwenden, um ein beliebiges Modul mit seinen Abhängigkeiten zu aktualisieren

composer update vendor-name/module-name --with-dependencies

19voto

orhankutlu Punkte 810

Sie können im Grunde genommen Folgendes tun, um ein neues Paket zu installieren.

php composer.phar require

Dann wird das Terminal Sie auffordern, den Namen des Pakets zur Suche einzugeben.

$ Nach einem Paket suchen []: //Geben Sie hier Ihren Paketnamen ein

Dann wird das Terminal nach der Version des Pakets fragen (Wenn Sie die neueste Version möchten, lassen Sie sie einfach leer).

$ Geben Sie die Versionsbeschränkung ein, die benötigt wird (oder lassen Sie sie leer, um die neueste Version zu verwenden) []: //Geben Sie hier Ihre Versionsnummer ein

Dann drücken Sie einfach die Eingabetaste. Das Terminal wird nach einem weiteren Paket fragen, wenn Sie kein weiteres installieren möchten, drücken Sie einfach die Eingabetaste und Sie sind fertig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X