Composer Fehler nach Live Update von 3.5.3 auf 3.5.14: Fatal error: Out of memory
Hallo zusammen,
vorweg: ich bin keinProfi, nur ambitionierter Anwender,
habe bislang alles hinbekommen.
Gestern wollte ich mir "etwas Gutes" tun und hab eine Live Update ID gekauft und das laufen lassen.
der erste Fehler war einfach zu finden...ich hatte eine Variable genutzt, welche nicht definiert wurde (für Farbdarstellung, also nichts Wildes)
was mich aber stört kann ich selber nicht beeinflussen:
Code:
Fatal error: Out of memory (allocated 231211008) (tried to allocate 36 bytes) in phar:///mnt/strato/document/root/htdocs/2016/composer/composer.phar/src/Composer/DependencyResolver/RuleSetGenerator.php on line 61
ich merke es bisher nur, wenn ich im Repository bzw. erweiterung installieren möchte
(mir gelingt es nämlich nicht, den TinyMCE wieder optisch so aufzuhübschen, wie er früher war)
das sind auch die einzigen installierten Erweiterungen, welche ich nutze, zum TinyMCE
Kennt das jemand?
Frank
composer install vs. composer update - Speicherverbrauch
Hallo,
grundsätzlich sollte man in einem Produktivsystem kein composer update durchführen. Ein composer update prüft die Abhängigkeiten zwischen den installierten Paketen und sucht nach neuen Versionen, die zu den Einträgen in der composer.json passen. Danach werden die Pakete aktualisiert und die composer.lock neu geschrieben. Wie viel Arbeitsspeicher der composer dabei benötigt, hängt zum einen von der Anzahl der installierten Pakete und deren Abhängigkeiten aber auch von der verwendeten PHP-Version ab! Ich hatte schon Projekte, bei denen 1GB memory-limit gerade so gereicht haben.
In einem Produktivsystem führt man normalerweise ein composer install aus. Dabei schaut der composer, ob es eine gültige composer.lock gibt, und installiert die Pakete anhand der Einträge in der composer.lock. Dies ist erheblich schneller und benötigt wesentlich weniger Speicher. Schlägt dies fehl, wird im Prinzip das gleiche ausgeführt wie beim composer update.
Warum sollte man es vermeiden, im Produktivsystem ein composer update auszuführen?
In der composer.lock sind die Versionen hinterlegt, mit denen auf dem Entwicklungssystem gearbeitet und getestet wurde. Man kann also davon ausgehen, dass diese Kombination fast immer funktioniert. Beim composer update werden die zu installierenden Versionen der Pakete anhand der in der composer.json festgelegten Regeln neu ermittelt. Wenn die Regeln korrekt hinterlegt sind und sich die Entwickler der Pakete an die üblichen Regeln gehalten haben, sollte das auch funktionieren. Dennoch hatte ich schon Fälle, in denen das schief ging. Also besser: composer install!
Viele Grüße
Oliver