композитор убит во время обновления


У меня возникла проблема, я попытался установить новый пакет в свой проект laravel 4. Но когда я запускаю php composer.phar update, я получаю следующее:

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

Я поискал проблему в Интернете и увидел, что проблема в памяти, я думаю, что у меня недостаточно доступной оперативной памяти, я проверил это, у меня есть около 411 Мб свободного места. Действительно ли композитору нужно больше оперативной памяти? Кто-нибудь может мне помочь, пожалуйста?

Спасибо

Author: user3038158, 2013-12-19

6 answers

Сообщение "Убит" обычно означает, что ваш процесс потребляет слишком много памяти, поэтому вам может просто потребоваться добавить больше памяти в вашу систему, если это возможно. На момент написания этого ответа мне пришлось увеличить объем памяти моей виртуальной машины по крайней мере до 768 МБ, чтобы заставить composer update работать в некоторых ситуациях.

Однако, если вы делаете это на реальном сервере, вам вообще не следует использовать composer update. Вместо этого вам следует сделать следующее:

  1. Запустите composer update в локальной среде (либо ваша локальная физическая машина или виртуальная машина разработки)
  2. Загрузить или git push композитор.файл блокировки
  3. Запустите composer install на реальном сервере

composer install затем будет зачитано из.заблокируйте файл, каждый раз извлекая одни и те же версии, а не находя последние версии каждого пакета. Это снижает вероятность сбоя вашего приложения, а composer использует меньше памяти.

Подробнее читайте здесь: https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file

 143
Author: Andreas, 2018-01-11 23:05:34

Если, как и я, вы используете какую-то микро-виртуальную машину, которой не хватает памяти, создание файла подкачки делает свое дело:

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

Кстати, не стесняйтесь выбирать другое местоположение/имя файла/размер для файла.
/var вероятно, это не лучшее место, но я не знаю, какое место было бы, и меня это редко волнует, так как крошечные серверы в основном используются для целей тестирования.

 32
Author: Balmipour, 2018-05-25 16:57:52

Это потому, что у вашего хостинга заканчивается память, пожалуйста, проверьте этот учебник

 10
Author: ivan.proskuryakov, 2018-08-31 13:29:24

К сожалению, композитору требуется много оперативной памяти и вычислительной мощности. Вот несколько вещей, которые я сделал, которые в совокупности сделали этот процесс терпимым. Это было в моем облачном манеже env.

  1. Возможно, у вас просто заканчивается оперативная память. Включить обмен: https://www.digitalocean.com/community/search?запрос= как+добавить+поменять местами (примечание: Я думаю, что лучше всего добавить отдельный раздел. Руководство Digitalocean подходит для их среды)
  2. service mysql stop (убейте свою БД/мем-свинью сервисы для освобождения оперативной памяти - не забудьте запустить ее снова!)
  3. используйте дополнительный сеанс терминала, запущенный top, чтобы отслеживать потребление памяти/подкачки до завершения процесса.
  4. composer.phar update --prefer-dist -vvv (подробный вывод [все еще зависает в некоторых точках при работе] и использует zip-файлы дистрибутива). Может быть, тоже попробовать --dry-run?
  5. Очевидно, что Composer работает медленнее в более старых версиях PHP (например, 5.3x). Для меня все еще было медленно в 5.5.9...
 6
Author: alirobe, 2014-07-30 15:53:09

Вы можете попробовать установить preferred-install к "dist" в конфигурации композитора WP CLI - обычно в ~/.wp-cli/packages/composer.json.

 0
Author: XedinUnknown, 2017-12-26 08:36:47

Исправление DigitalOcean, которое не требует дополнительной подкачки с активацией памяти, вот пример для 1 Гб:

В терминале запустите ниже

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

Вышеуказанное решение будет работать до следующей перезагрузки, после чего своп необходимо будет повторно активировать. Чтобы сохранить его между перезагрузками, добавьте файл подкачки в fstab:

sudo nano /etc/fstab

Откройте указанный выше файл, добавьте строку ниже в файл

/var/swap.1 swap swap sw 0 0

Теперь перезагрузите сервер. Композитор требует, чтобы все работало нормально.

 0
Author: hemss, 2018-08-17 13:01:01