Проблема с разрешениями при попытке установить приложение Symfony с помощью Composer

#php #windows #symfony #composer-php

#php #Windows #symfony #composer-php

Вопрос:

Пожалуйста, воздержитесь от комментариев по вашему предложению, если вы не прочитали мой список действий по устранению неполадок. Я обновляю этот список по мере поступления предложений.

В среде Windows 7 моего коллеги при попытке установить одно из наших приложений, построенных на Symfony 2.5. *, мы получаем следующую проблему с unlink :

Ошибка установки Composer

Мы попробовали следующее:

  • Выполняется 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 есть последнее исправление для этого.