Composer крайне медленно и непоследовательно
несколько дней у меня возникли проблемы в моем composer, который не имеет смысла(не имеет ошибки/стандартная логика ошибки являются почти случайными), поэтому я не в состоянии решить, что происходит, это следующее.
у Меня есть мини framework, и я обновляю это, как я нуждался ресурсов, следующие шаги:
1 - Изменяю framework.
2 - Делаю push на github.
3 - Обновляю packagist.
4 - Обновляю composer
и в проекте, который я с помощью него (на Этом этапе проблема)
Если я указать только обновить зависимости в вопросе, работает правильно, однако, если я даю команду 'composer update'
он удаляет некоторые зависимости (иногда все) и устанавливает еще раз, и еще сверху не обновляет autoloader
, если папка " 'vendor/composer'
не будет удалена, и чтоб усложнить этот процесс обновления команды занимает больше 20 минут, и приводит многочисленные оповещения как это.
exceeded the timeout of 300 seconds.
, Но это обновление зависимостей не являются последовательными, то есть, не те же, что и обновляются, всегда, каждый раз это отличается.
ПРИМЕЧАНИЕ:я Проверил в репозитории зависимостей, которые служат для обновления, и большинство из них не имеет изменение github/gitlab
но composer
определяет, что версия, которую я использую, отличается от версии, доступной.
Список зависимостей, которые требуют обновления не были изменены с частота:
PHPDocumentor (это больше всего занимает, и обновления не согласованы)
Synfony
Doctrine
Guzzlehttp
Robinherbots/jquery.inputmask (Это обновляет 100% случаев и занимает очень много)
Cocur/slugify
Components/jquery -
Zendframework
И когда каждый из этих зависимостей имеют другие зависимости, то же самое обновляются 100%, требуется много времени, чтобы завершить, когда не предупреждение ошибки и/или не заключает.
И вторая проблема, на вопрос о обновлении autoload
внутри vendor
.
Если файл composer.json
обновляется, чтобы включить некоторый namespace
новый, и не дать команду update, он делает весь процесс, указывает на успешное, но не включает в себя новый namespace
autoload
, такая, что этот шаг работает, мне нужно удалить папку 'vendor/composer'
дать команду 'composer update'
и ждать +- 20 минут(ja составил более 40) чтобы обновить все, и я могу вернуться к работать.
Информация:
Тест: ОС Ubuntu 16.4
Производство: ОС Debian 7.
PHP: 7. GIT: Последняя версия.
Разрешений из папки 777.
IDE: Netbeans 8.2
Широкополосного Интернет 50 МБ Стабильно.
Composer.json
{
"name": "contabil app center",
"description": "",
"type": "Biblioteca",
"license": "BSD-3",
"version": "1.0",
"authors": [
{
"name": "Gabriel",
"email": ""
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.3.8",
"guzzlehttp/guzzle": "~6.0",
"slim/pdo": "~1.9",
"cocur/slugify": "dev-master",
"components/jquery": "~3.2.1",
"wixel/gump": "dev-master",
"phpmailer/phpmailer": "^5.2",
"easy-cont/vidb": "dev-master",
"phpdocumentor/phpdocumentor": "2.*"
},
"autoload": {
"psr-4": {
"appModel\\": "model/app",
"appView\\": "view/app",
"appController\\": "controller/app",
"appFinancialRestatement\\":"model/app/calculations/financial-calculations",
"appFinancialIndices\\":"model/app/calculations/financial-calculations",
"appDebitWorksheet\\":"model/app/calculations/financial-calculations",
"appFIPE\\":"model/app/fipe",
"phpToJs\\":"interactors",
"siteModel\\": "model/site",
"indexView\\": "view/site",
"siteController\\": "controller/site"
}
}
}
1 answers
Возможные причины ошибки:
1. Проблемы с сетью:
Как вопрос ниже, могут быть проблемы с IPV6, то есть Linux, я не знаю, если проблема возникает в Windows:
Также может быть проблема с Брандмауэром или Прокси-сервера в сети, а один из этих двух не имею, как сформулировать ответ "по умолчанию", потому что каждая сеть может работать таким образом.
2. Xdebug или аналогичный активен в CLI
Composer PHP в CLI (интерфейс командной строки), использовать XDebug в нем или расширения аналогичные может привести к проблемам типа, рекомендую создайте php.ini
CLI и один для Apache (если linux уже отдельно), и тогда в php.ini
для CLI, просто закомментируйте строку все возможные расширения, которые используются для отладки, как я объяснил в этом ответе:
3. Composer устарел
Может быть ошибка в версии composer
, или, может быть, было так, что работала на старой версии, загрузив все обратно, в случае, если первый может проверить текущую версию composer с помощью команды:
composer -V
Примечание:
V
в верхнем регистре
Команда:
composer -about
Версия текущем 1.5.1
, если меньше, чем это необходимо, обновить, для этого используйте команду:
composer self-update
Если команда не работает, потому что на самом деле должны быть, с помощью очень старые версии, только тогда вы сможете вручную обновить, будучи в Linux я не могу сказать, где было установлено, что это выбор пользователя машины, если известно, куда этот файл composer.phar
удалите его и установите снова:
Скачать setup:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
), А затем запустите setup:
php composer-setup.php
Установка composer глобально в Linux
В linux композитор не установлен глобально, но может копировать, перемещать вручную, после скачать можете сделать это в соответствии с ответом от Уоллес:
chmod +x composer.phar
mv composer.phar /usr/local/bin/composer
И в соответствии с ответом Даниил отредактируйте .bashrc
добавления:
alias composer=/a/pasta/onde/esta/conposer.phar