it-swarm.com.de

komponist beim Update getötet

Ich habe ein Problem, ich habe versucht, ein neues Paket für mein Laravel 4-Projekt zu installieren ... Aber wenn ich php composer.phar update starte, bekomme ich Folgendes:

Loading composer repositories with package information
Updating dependencies (including require-dev)
Killed

Ich habe im Internet nach dem Problem gesucht und gesehen, dass der Speicher das Problem ist. Ich glaube, ich habe nicht genügend RAM verfügbar. Ich habe dies überprüft. Ich habe ungefähr 411 MB frei brauche mehr RAM? Kann mir bitte jemand weiterhelfen?

Vielen Dank

55
user3038158

Die Meldung "Killed" bedeutet normalerweise, dass Ihr Prozess zu viel Arbeitsspeicher beansprucht, sodass Sie möglicherweise einfach mehr Arbeitsspeicher hinzufügen müssen, wenn dies möglich ist. Zum Zeitpunkt des Schreibens dieser Antwort musste ich den Speicher meiner virtuellen Maschine auf mindestens 768 MB erhöhen, damit composer update in einigen Situationen zum Laufen gebracht wird.

Wenn Sie dies jedoch auf einem Live-Server durchführen, sollten Sie composer update überhaupt nicht verwenden. Was Sie stattdessen tun sollten, ist:

  1. Ausführen von composer update in einer lokalen Umgebung (entweder Ihrer lokalen physischen Maschine oder einer virtuellen Entwicklungsmaschine)
  2. Laden Sie oder git Push die Datei composer.lock hoch
  3. Führen Sie composer install auf dem Live-Server aus

composer install liest dann aus der .lock-Datei und ruft jedes Mal die gleichen Versionen ab, anstatt die neuesten Versionen jedes Pakets zu finden. Dadurch ist es weniger wahrscheinlich, dass Ihre App beschädigt wird, und der Composer benötigt weniger Speicherplatz.

Lesen Sie hier mehr: https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file

166
Andreas

Wenn Sie wie ich ein Micro VM verwenden, dem kein Arbeitsspeicher zur Verfügung steht, können Sie eine Auslagerungsdatei erstellen:

free -m
mkdir -p /var/_swap_
cd /var/_swap_
#Here, 1M * 2000 ~= 2GB of swap memory
dd if=/dev/zero of=swapfile bs=1M count=2000
mkswap swapfile
swapon swapfile
chmod 600 swapfile
echo "/var/_swap_/swapfile none swap sw 0 0" >> /etc/fstab
#cat /proc/meminfo
free -m

Übrigens, Sie können gerne einen anderen Ort/Dateinamen/eine andere Größe für die Datei auswählen.
/var ist wahrscheinlich nicht der beste Ort, aber ich weiß nicht, welcher Ort sein würde.

34
Balmipour

Bitte überprüfen Sie dieses Tutorial, weil Ihr Hosting nicht mehr ausreicht 

10

Leider benötigt der Composer viel RAM und Verarbeitungsleistung. Hier sind ein paar Dinge, die ich gemacht habe, was den Prozess erträglich machte. Dies war auf meinem Cloud-Laufstall env.

  1. Möglicherweise geht Ihnen einfach der RAM aus. Aktivieren Sie den Swap: https://www.digitalocean.com/community/search?query=how+to+add+swap (Hinweis: Ich denke, es ist am besten, eine separate Partition hinzuzufügen. Der Leitfaden von Digitalocean ist für sie geeignet Umgebung)
  2. service mysql stop (beenden Sie Ihre DB/mem-hog-Dienste, um einige RAM freizugeben - vergessen Sie nicht, es erneut zu starten!) 
  3. verwenden Sie eine sekundäre Terminalsitzung, die top ausgeführt wird, um den Speicher-/Auslagerungsverbrauch zu überwachen, bis der Prozess abgeschlossen ist.
  4. composer.phar update --prefer-dist -vvv (verbose Ausgabe [bleibt beim Arbeiten an einigen Stellen hängen] und Distro-Zip-Dateien verwenden). Vielleicht einen --dry-run auch versuchen? 
  5. Composer ist anscheinend dafür bekannt, in älteren Versionen von PHP (z. B. 5,3x) langsamer zu laufen. In 5.5.9 war es für mich immer noch langsam ...
8
alirobe

Sie können so etwas versuchen 

php -d memory_limit=4G /usr/local/bin/composer update
1
GiorgosK

DigitalOcean-Update, für das kein zusätzlicher Speicher erforderlich ist - der Swap wird aktiviert.

im Terminallauf unten

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
Sudo /sbin/swapon /var/swap.1

Die obige Lösung funktioniert bis zum nächsten Neustart, danach müsste der Swap erneut aktiviert werden. Um es zwischen den Neustarts zu behalten, fügen Sie die Auslagerungsdatei zu fstab hinzu:

Sudo nano /etc/fstab

Öffnen Sie die obige Datei, und fügen Sie der Datei unten eine Zeile hinzu

/var/swap.1 swap swap sw 0 0

starten Sie jetzt den Server neu. Komponist erfordert Werke gut.

1
Hemamalini

Sie können versuchen, preferred-install auf "dist" in der Composer-Konfiguration der CLI WP einzustellen - normalerweise bei ~/.wp-cli/packages/composer.json.

0
XedinUnknown

php -d memory_limit = 5G composer.phar update

0

Auf Laravel/Homestead gelöst (Vagrant Windows)

1) Bearbeiten Sie Homestead.yaml und erhöhen Sie den Speicher von 2048 auf 4096

2) Vagabund

3) Landstreicher ssh

4) Installieren Sie Symfony mit dieser Zeile in dem von Ihnen ausgewählten Ordner (muss ohne Dateien sein).

COMPOSER_MEMORY_LIMIT=-1 composer create-project symfony/website-skeleton . -s dev
0
davidjimenez75

Führen Sie composer self-update und composer clearcache Remove Vendor und Composer aus. Sperren Sie den Neustart Ihrer lokalen Umgebung und führen Sie dann php -d memory_limit=-1 /usr/local/bin/composer install aus.

0
farnoosh