Сообщение «Killed» обычно означает, что ваш процесс потребляет слишком много памяти, поэтому вам может просто потребоваться добавить больше памяти в вашу систему, если это возможно. На момент написания этого ответа мне пришлось увеличить память моей виртуальной машины как минимум до 768 МБ, чтобы можно composer update
было работать в некоторых ситуациях.
Однако, если вы делаете это на реальном сервере, вам вообще не следует использовать composer update
. Вместо этого вам следует сделать следующее:
- Запускать
composer update
в локальной среде (например, непосредственно на вашем физическом ноутбуке / настольном компьютере или в докер-контейнере / виртуальной машине, работающей на вашем ноутбуке / настольном компьютере), где ограничения памяти не должны быть такими серьезными.
- Загрузите или
git push
файл composer.lock.
- Запускаем
composer install
на живом сервере.
composer install
затем будет читать из файла .lock, получая каждый раз одни и те же версии, а не находить последние версии каждого пакета. Это снижает вероятность поломки вашего приложения, а композитор использует меньше памяти.
Подробности читайте здесь: https://getcomposer.org/doc/01-basic-usage.md#installing-with-composer-lock
В качестве альтернативы вы можете загрузить весь vendor
каталог на сервер, composer install
вообще избегая необходимости запускать , но тогда вы должны запустить composer dump-autoload --optimize
.
Если, как и я, вы используете какую-то микро-виртуальную машину с нехваткой памяти, создание файла подкачки поможет:
Как указывалось в нескольких комментариях, не забудьте добавить sudo, если вы не работаете с правами root.
Кстати, не стесняйтесь выбирать другое местоположение / имя файла / размер для файла.
/var
это, вероятно, не лучшее место, но я не знаю, какое это место, и меня это редко волнует, поскольку крошечные серверы в основном используются для тестирования.источник
sudo
что для выполнения этих команд мне пришлось использовать привилегии root.swapon: swapfile: swapon failed: Operation not permitted
, почему?К сожалению, композитору требуется много оперативной памяти и вычислительной мощности. Вот несколько вещей, которые я сделал, которые в совокупности сделали процесс сносным. Это было на моем облачном манеже env.
service mysql stop
(убейте свои службы DB / mem-hog, чтобы освободить немного оперативной памяти - не забудьте запустить их снова!)top
чтобы наблюдать за потреблением памяти / подкачки до завершения процесса.composer.phar update --prefer-dist -vvv
(подробный вывод [все еще зависает в некоторых моментах при работе] и используются zip-файлы дистрибутива). Может, попробовать--dry-run
тоже?источник
top
наhtop
, удобнее.Исправление DigitalOcean, не требующее дополнительной памяти - активация подкачки, вот пример для 1 ГБ:
в терминале запустить ниже
Приведенное выше решение будет работать до следующей перезагрузки, после чего своп придется повторно активировать. Чтобы сохранить его между перезагрузками, добавьте файл подкачки в fstab:
откройте указанный выше файл, добавьте в файл строку ниже
теперь перезапустите сервер. Требование композитора работает нормально.
источник
Запустите
composer self-update
иcomposer clearcache
удалите vendor и composer.lock, перезапустите локальную среду, а затем запуститеphp -d memory_limit=-1 /usr/local/bin/composer install
источник
У меня
composer install
возникла эта ошибка, когда я запустил свой контейнер PHP DOCKER. Это проблема с памятью. Решено путем увеличения SWAP-памяти в DOCKER PREFERENCES с 512 МБ до 1,5 ГБисточник
Увеличьте лимит памяти для композитора
После этого изменения может потребоваться перезагрузка
источник
Я получаю эту проблему из-за пакета, который некорректно обновляется с помощью подстановочных знаков, я использую напрямую последнюю версию, и она наконец работает.
"l3 / cas-bundle": "~ 1.0" -------> "l3 / cas-bundle": "1.1.13"
источник
Вот как мне удалось установить пакет maatwebsite \ excel из композитора в Laravel Framework:
composer update
из локальной командной строки (затем жду завершения всего процесса установки).composer install
на удаленном сервере (затем дождаться завершения всего процесса).источник
Если вы используете докер, вы можете использовать COMPOSER_PROCESS_TIMEOUT
источник
источник
Решено на Laravel / Homestead (бродячие окна)
Изменить
Homestead.yaml
и увеличить память с 2048 до 4096бродить
бродячий ssh
Установите Symfony с этой строкой в выбранную вами папку (должна быть без файлов)
источник
Вы можете попробовать настройки
preferred-install
для"dist"
в Composer конфигурации.источник
Я получал эту ошибку в локальной среде Docker. Я решил это, просто перезапустив Докер.
источник