Невозможно обновить объем памяти Composer - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь установить расширение на Magento 2 через Composer, но когда я запускаю обновление Composer, я получаю следующую ошибку:

 composer update

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

Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Я пытаюсь: php -d memory_limit=-1 composer update Но я получаю: Could not open input file: composer

Итак, я попробовал и получил:

curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.9.0) successfully installed to: /home/customer/www/xxx/public_html/composer.phar
Use it: php composer.phar

Итак, думая, что это исправлено, я снова попробовал и получил:

php -d memory_limit=-1 composer.phar install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Nothing to install or update
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files

Итак, я попытался обновить композитор снова иполучил:

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

Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer.phar/src/Composer/DependencyResolver/RuleWatchGraph.php on line 52

Итак, еще раз, я пытаюсь composer update и получаю Could not open input file: composer

Я вернулся к тому, с чего начал, и невероятно растерян: / Пожалуйста, посоветуйте.Спасибо.

1 Ответ

0 голосов
/ 24 сентября 2019

Когда вы используете php -d memory_limit=-1, вы устанавливаете запись ini на лету, но только для скрипта, запускаемого с помощью этой команды.

Ваша идея запустить эту команду была близка к тому, что вы хотитедостижения:

php -d memory_limit=-1 composer update

Единственное, что вам нужно знать, это то, что composer работает как команда, потому что она где-то стоит, и ваша ОС будет искать все исполняемые файлы (скорее всего /usr/bin/composer, /usr/local/bin/composer или что-то подобное, это обычно упоминается как PATH).Но когда вы пытаетесь запустить php composer, тогда composer просто рассматривается как обычный файл, и ваша ОС больше не пытается искать путь к вашему исполняемому файлу.

Что вы можете сделать, так это использовать командуwhich, который вернет вам путь к этому composer исполняемому файлу.

$ php $(which composer) -V
Composer version 1.8.6 2019-06-11 15:03:05

Таким образом, вы сможете достичь того, что вы хотите сделать, с помощью

php -d memory_limit=-1 $(which composer) install

для установки пакетов;и

php -d memory_limit=-1 $(which composer) update

для обновлений.

Обратите также внимание на то, что : в документации композитора есть полная статья об ограничении памяти: https://getcomposer.org/doc/articles/troubleshooting.md#memory-limit-errors

Это может облегчить вашу работу, изменив соответствующую настройку PHP CLI, или может указать на использование

COMPOSER_MEMORY_LIMIT=-1 composer install

и

COMPOSER_MEMORY_LIMIT=-1 composer update
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...