#php #windows #symfony #composer-php
#php #Windows #symfony #composer-php
Вопрос:
Пожалуйста, воздержитесь от комментариев по вашему предложению, если вы не прочитали мой список действий по устранению неполадок. Я обновляю этот список по мере поступления предложений.
В среде Windows 7 моего коллеги при попытке установить одно из наших приложений, построенных на Symfony 2.5. *, мы получаем следующую проблему с unlink
:
Мы попробовали следующее:
- Выполняется
composer self-update
- Запуск
composer update
вместоcomposer install
(что привело к той же ошибке, что и ниже) - Запуск git bash в режиме администратора
- Запуск
composer install
из командной строки DOS администратора вместо git bash - Клонирование нашего репозитория в нескольких местах, в том числе непосредственно на рабочем столе пользователя
- Изменение разрешений файлов для предоставления полного контроля и владения текущему пользователю (рекурсивно)
- Изменение разрешений файлов для предоставления полного контроля и владения «Всем» (рекурсивно)
- Изменение разрешений файлов для предоставления полного контроля и владения «СИСТЕМЕ» (рекурсивно)
- Запуск нового проекта с нуля с использованием
composer create-project symfony/framework-standard-edition test/ "2.5.*"
иcomposer create-project symfony/framework-standard-edition path/ "2.3.*"
(в случае, если проблема зависит от версии) - Попытка на другом компьютере с Windows 7 (с тем же результатом)
- Удаление папки поставщика и очистка кэша composer
- Отключение индексатора (поисковой системы Windows)
Есть идеи о том, что происходит? Это ошибка композитора или одно из удовольствий работы с Windows? Все вышеперечисленное работает нормально на моем компьютере с OSX.
Еще одно замечание по отладке… когда я пытаюсь вручную разорвать связь с php -r "unlink('...');"
ним, соответствующий файл удаляется без проблем
Комментарии:
1. запустите самообновление sudo composer
2. Попробуйте удалить весь каталог поставщика и запустить его снова, используя режим администратора?
3. @JohnSmith
sudo
в Windows нет. Однако я запустил самообновление как администратор4. @Chausser пробовал это — все еще не работает. Также несколько раз запускался с новым клоном (репозиторий не хранит папку поставщика)
5. тогда, возможно, у вас нет другого шанса, кроме как устанавливать для каждого шага правильные разрешения (может быть, много), щелкнув правой кнопкой мыши, установив безопасность. владение возьмите на себя ответственность и предоставьте все разрешения
Ответ №1:
Я нашел проблему. Офисная антивирусная программа под названием «Trend Micro» выполняла «живое сканирование» любых вновь созданных файлов. Поскольку антивирусная программа обращалась к файлу в то же время, когда composer пытался получить доступ к unlink
файлам, composer завершится ошибкой. Добавление репозитория в белый список антивируса (а также индексатора Windows для обеспечения безопасности) полностью устранило проблему.
Я создал проблему в GitHub для работы команды composer, чтобы это исключение можно было как-то обработать (например sleep
, функция при сбое unlink
)
Всем спасибо за помощь в устранении неполадок.
РЕДАКТИРОВАТЬ: на момент этой правки было написано исправление, поэтому, если вы столкнетесь с этой проблемой, просто запустите composer self-update
, чтобы убедиться, что у Composer есть последнее исправление для этого.