@ar2rsoft
PHP-developer

Как установить symfony на vagrant (homestead)?

Приветствую.

Никак не получается установить симфони из композера, получаю ошибку:
Could not delete /var/www/site.ru/www/vendor/symfony/flex/src/Command:


Логи:
root@homestead:/var/www/site.ru/www# composer -vvv create-project symfony/website-skeleton .
....
Package operations: 1 install, 0 updates, 0 removals
Installs: symfony/flex:v1.4.5
  - Installing symfony/flex (v1.4.5): Reading /root/.cache/composer/files/symfony/flex/6d95ad17b465d814bf18c301dfe2e548420960f3.zip from cache
Loading from cache
 Extracting archiveExecuting command (CWD): unzip -qq  '/var/www/site.ru/www/vendor/symfony/flex/58b6844a5398a2e9d36347f1c9c4cf48' -d '/var/www/site.ru/www/vendor/composer/0819fb2d'
Loading plugin Symfony\Flex\Flex
Plugin installation failed, rolling back
  - Removing symfony/flex (v1.4.5)
Reading ./composer.json
Loading config file /root/.config/composer/config.json
Loading config file /root/.config/composer/auth.json
Loading config file ./composer.json
Reading /root/.config/composer/composer.json
Loading config file /root/.config/composer/config.json
Loading config file /root/.config/composer/auth.json
Loading config file /root/.config/composer/composer.json
Loading config file /root/.config/composer/auth.json
Reading /root/.config/composer/auth.json

                                                                             
  [RuntimeException]                                                         
  Could not delete /var/www/site.ru/www/vendor/symfony/flex/src/Command:  
                                                                             

Exception trace:
 () at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:217
 Composer\Util\Filesystem->unlink() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:170
 Composer\Util\Filesystem->removeDirectoryPhp() at phar:///usr/local/bin/composer/src/Composer/Util/Filesystem.php:137
 Composer\Util\Filesystem->removeDirectory() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:238
 Composer\Downloader\FileDownloader->remove() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:299
 Composer\Downloader\DownloadManager->remove() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:224
 Composer\Installer\LibraryInstaller->removeCode() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:137
 Composer\Installer\LibraryInstaller->uninstall() at phar:///usr/local/bin/composer/src/Composer/Installer/PluginInstaller.php:66
 Composer\Installer\PluginInstaller->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:173
 Composer\Installer\InstallationManager->install() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:160
 Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:597
 Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:229
 Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/CreateProjectCommand.php:195
 Composer\Command\CreateProjectCommand->installProject() at phar:///usr/local/bin/composer/src/Composer/Command/CreateProjectCommand.php:145
 Composer\Command\CreateProjectCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245
 Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835
 Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185
 Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:267
 Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117
 Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:106
 Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:61
 require() at /usr/local/bin/composer:24


Конфиг композера config.json:
{
    "config": {
        "process-timeout":      2400,
        "preferred-install":    "dist",
        "github-protocols":     ["https"]
    }
}


Система Ubuntu 18.04.2 LTS
Php PHP 7.3.8 (все расширения для симфонии установлены - Ctype, iconv, JSON, PCRE, Session, SimpleXML, and Tokenizer)
Composer version 1.9.0 2019-08-02 20:55:32
Homestead 8.0.1
VirtualBox 6.0.10

В чем может быть дело? Был похожая проблема с Yii2, но с юии помогло добавление времени в конфиг композера, с симфони не помогает, да и дело не во времени, т.к. ошибка вылезает через 10-15 секунд. С другими пакетами проблем не возникает.

При установке symfony как комнады, сама команда работает, проверка системных требования возвращает ОК, но когда пытаюсь создать проект так же получаю похожую ошибку "Could not delete /var/www/site.ru/www/site/vendor/symfony/flex/src/Command:".
  • Вопрос задан
  • 574 просмотра
Решения вопроса 1
@ar2rsoft Автор вопроса
PHP-developer
Проблема оказалась при установке в директорию, которая примонтирована из хост машины. Если делать установку из директории выше, то всё ок.

Т.е. директория /var/www/site.ru/www примонтирована, в ней не устанавливается.
в директорию, которая не синхронизируется /var/www/site.ru/test установилось без ошибок.

Решение, установить в другую директорию, затем скопировать все файлы в рабочую.

Upd.
Обновлю ответ для будущих читателей. Помогает смена типа синхронизации:
folders:
    - map: C:/projects/site.ru/www/
      to: /var/www/site.ru/www/
      type: smb
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
glaphire
@glaphire
PHP developer
Странно, что Вы от рута инсталите, по стектрейсу композер теряет права на удаление файла, у Вас точно не меняется ничего в процессе развертывания проекта?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы