为什么 composer create-project for Drupal 在 WSL2 中失败?
Why does composer create-project for Drupal fail in WSL2?
我是一名试验 WSL2 的 Drupal 网站建设者,我发现使用 composer 创建 Drupal 项目的例程没有完成。
我的 PC 有 16GB RAM 并且允许 composer 无限内存。据我所知,我已为 WSL2 正确配置 Docker。
创建项目进程正常启动,但在安装 drupal/core (9.0.2) 时停止。无论是从源代码还是从缓存下载,这似乎都是如此。相当长一段时间后,该过程将失败。项目文件夹内容大部分不完整
我首先尝试使用 DDEV 的 Drupal 9 配方,一个基于容器的本地开发环境,其中包括作曲家。
不想将矛头指向 DDEV,然后我通过 Homebrew 在 WSL2 的主目录中安装了 composer,并再次尝试,独立于 DDEV 或 Docker。在 运行 composer create-project drupal/recommended-project my_site_name_dir
之后,我发现 composer 以完全相同的方式失败。
Composer 输出如下;
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir
在“./my_site_name_dir”创建一个“drupal/recommended-project”项目
正在安装 drupal/recommended-project (9.0.2)
- 正在安装 drupal/recommended-project (9.0.2):从缓存中加载
在 /mnt/c/Users/Paul/Sites/D9/my_site_name_dir 中创建项目
使用包信息加载作曲家存储库
从锁定文件安装依赖项(包括 require-dev)
包操作:59 次安装,0 次更新,0 次删除
- 正在安装 composer/installers (v1.9.0):从缓存中加载
- 正在安装 drupal/core-composer-scaffold (9.0.2):从缓存中加载
- 正在安装 drupal/core-project-message (9.0.2):从缓存中加载
- 正在安装 typo3/phar-stream-wrapper (v3.1.4):从缓存中加载
- 正在安装 symfony/polyfill-mbstring (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-ctype (v1.17.0):从缓存中加载
- 正在安装 twig/twig (v2.12.5):从缓存中加载
- 正在安装 symfony/yaml (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php80 (v1.17.0):从缓存中加载
- 正在安装 symfony/var-dumper (v5.1.0):从缓存中加载
- 正在安装 symfony/translation-contracts (v2.1.2):从缓存中加载
- 正在安装 symfony/validator (v4.4.9):从缓存中加载
- 正在安装 symfony/translation (v4.4.9):从缓存中加载
- 正在安装 psr/container (1.0.0):从缓存中加载
- 正在安装 symfony/service-contracts (v2.1.2):从缓存中加载
- 正在安装 symfony/serializer (v4.4.9):从缓存中加载
- 正在安装 symfony/routing (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php72 (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-intl-idn (v1.17.0):从缓存中加载
- 正在安装 symfony/mime (v5.1.0):从缓存中加载
- 正在安装 symfony/http-foundation (v4.4.9):从缓存中加载
- 正在安装 psr/http-message (1.0.1):从缓存中加载
- 正在安装 symfony/psr-http-message-bridge (v2.0.0):从缓存中加载
- 正在安装 symfony/process (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php73 (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-iconv (v1.17.0):从缓存中加载
- 正在安装 symfony/event-dispatcher-contracts (v1.1.7):从缓存中加载
- 正在安装 symfony/event-dispatcher (v4.4.9):从缓存中加载
- 正在安装 psr/log (1.1.3):从缓存中加载
- 正在安装 symfony/debug (v4.4.9):从缓存中加载
- 正在安装 symfony/error-handler (v4.4.9):从缓存中加载
- 正在安装 symfony/http-kernel (v4.4.9):从缓存中加载
- 正在安装 symfony/dependency-injection (v4.4.9):从缓存中加载
- 正在安装 symfony/console (v4.4.9):从缓存中加载
- 正在安装 symfony-cmf/routing (2.3.2):从缓存中加载
- 正在安装 stack/builder (v1.0.6):从缓存中加载
- 正在安装 ralouphie/getallheaders (3.0.3):从缓存中加载
- 正在安装 psr/http-factory (1.0.1):从缓存中加载
- 正在安装 pear/pear_exception (v1.0.1):从缓存中加载
- 正在安装 pear/console_getopt (v1.4.3):从缓存中加载
- 正在安装 pear/pear-core-minimal (v1.10.10):从缓存中加载
- 正在安装 pear/archive_tar (1.4.9):从缓存中加载
- 正在安装 masterminds/html5 (2.7.0):从缓存中加载
- 正在安装 laminas/laminas-zendframework-bridge (1.0.4):从缓存中加载
- 正在安装 laminas/laminas-stdlib (3.2.1):从缓存中加载
- 正在安装 laminas/laminas-escaper (2.6.1):从缓存中加载
- 正在安装 laminas/laminas-feed (2.12.2):从缓存中加载
- 正在安装 laminas/laminas-diactoros (2.3.0):从缓存中加载
- 正在安装 guzzlehttp/psr7 (1.6.1):从缓存中加载
- 正在安装 guzzlehttp/promises (v1.3.1):从缓存中加载
- 正在安装 guzzlehttp/guzzle (6.5.4):从缓存中加载
- 正在安装 doctrine/lexer (1.2.1):从缓存中加载
- 正在安装 egulias/email-validator (2.1.17):从缓存中加载
- 正在安装 doctrine/annotations (1.10.3):从缓存中加载
- 正在安装 doctrine/reflection (1.2.1):从缓存中加载
- 正在安装 composer/semver (1.5.1):从缓存中加载
- 正在安装 asm89/stack-cors (1.3.0):从缓存中加载
- 正在安装 drupal/core (9.0.2):从缓存中加载
无法从 dist 下载 drupal/core:无法删除 /mnt/c/Users/Paul/Sites/D9/my_site_name_dir/vendor/composer/782129de/drupal-core-ea6e0ce/lib/Drupal/Core:
现在正在尝试从源下载
- 正在安装 drupal/core (9.0.2):从缓存中克隆 ea6e0cef32
[Symfony\Component\Process\Exception\ProcessTimedOutException]
进程“git checkout '9.0.2' --” 超过了 300 秒的超时。
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--无安全http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir
在“./my_site_name_dir”
创建一个“drupal/recommended-project”项目
[InvalidArgumentException]
项目目录“/mnt/c/Users/Paul/Sites/D9/my_site_name_dir”不为空。
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--无安全http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
阅读一些更新的文档后,我现在明白问题是我试图在 .mnt/c/Users/Paul
的 Windows 文件系统下执行此操作,而不是 Linux 位置 /home/paul
除了无错误地完成,性能也得到了极大的提高。
您绝对需要将您的项目放在 WSL2 文件系统上以获得良好的性能,是的。请参阅@MrPaulDriver 的回答,绝对关键。
但我们建议在任何地方都使用 ddev composer
。这使得您的作曲家使用与您的项目运行时相同的作曲家设置和 php 版本构建,并且它可以帮助大多数人。因此,甚至不需要在 ddev 主机上安装 php 或 composer。
例如,Drupal 9 Quickstart 显示
mkdir my-drupal9-site
cd my-drupal9-site
ddev config --project-type=drupal9 --docroot=web --create-docroot
ddev start
ddev composer create "drupal/recommended-project"
ddev composer require drush/drush
ddev launch
我想即使在您之前的设置中这对您也有用;它适用于很多地方。
有关更多详细信息,请查看文档中的 DDEV and Composer。
我是一名试验 WSL2 的 Drupal 网站建设者,我发现使用 composer 创建 Drupal 项目的例程没有完成。
我的 PC 有 16GB RAM 并且允许 composer 无限内存。据我所知,我已为 WSL2 正确配置 Docker。
创建项目进程正常启动,但在安装 drupal/core (9.0.2) 时停止。无论是从源代码还是从缓存下载,这似乎都是如此。相当长一段时间后,该过程将失败。项目文件夹内容大部分不完整
我首先尝试使用 DDEV 的 Drupal 9 配方,一个基于容器的本地开发环境,其中包括作曲家。
不想将矛头指向 DDEV,然后我通过 Homebrew 在 WSL2 的主目录中安装了 composer,并再次尝试,独立于 DDEV 或 Docker。在 运行 composer create-project drupal/recommended-project my_site_name_dir
之后,我发现 composer 以完全相同的方式失败。
Composer 输出如下;
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir 在“./my_site_name_dir”创建一个“drupal/recommended-project”项目 正在安装 drupal/recommended-project (9.0.2)
- 正在安装 drupal/recommended-project (9.0.2):从缓存中加载 在 /mnt/c/Users/Paul/Sites/D9/my_site_name_dir 中创建项目 使用包信息加载作曲家存储库 从锁定文件安装依赖项(包括 require-dev) 包操作:59 次安装,0 次更新,0 次删除
- 正在安装 composer/installers (v1.9.0):从缓存中加载
- 正在安装 drupal/core-composer-scaffold (9.0.2):从缓存中加载
- 正在安装 drupal/core-project-message (9.0.2):从缓存中加载
- 正在安装 typo3/phar-stream-wrapper (v3.1.4):从缓存中加载
- 正在安装 symfony/polyfill-mbstring (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-ctype (v1.17.0):从缓存中加载
- 正在安装 twig/twig (v2.12.5):从缓存中加载
- 正在安装 symfony/yaml (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php80 (v1.17.0):从缓存中加载
- 正在安装 symfony/var-dumper (v5.1.0):从缓存中加载
- 正在安装 symfony/translation-contracts (v2.1.2):从缓存中加载
- 正在安装 symfony/validator (v4.4.9):从缓存中加载
- 正在安装 symfony/translation (v4.4.9):从缓存中加载
- 正在安装 psr/container (1.0.0):从缓存中加载
- 正在安装 symfony/service-contracts (v2.1.2):从缓存中加载
- 正在安装 symfony/serializer (v4.4.9):从缓存中加载
- 正在安装 symfony/routing (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php72 (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-intl-idn (v1.17.0):从缓存中加载
- 正在安装 symfony/mime (v5.1.0):从缓存中加载
- 正在安装 symfony/http-foundation (v4.4.9):从缓存中加载
- 正在安装 psr/http-message (1.0.1):从缓存中加载
- 正在安装 symfony/psr-http-message-bridge (v2.0.0):从缓存中加载
- 正在安装 symfony/process (v4.4.9):从缓存中加载
- 正在安装 symfony/polyfill-php73 (v1.17.0):从缓存中加载
- 正在安装 symfony/polyfill-iconv (v1.17.0):从缓存中加载
- 正在安装 symfony/event-dispatcher-contracts (v1.1.7):从缓存中加载
- 正在安装 symfony/event-dispatcher (v4.4.9):从缓存中加载
- 正在安装 psr/log (1.1.3):从缓存中加载
- 正在安装 symfony/debug (v4.4.9):从缓存中加载
- 正在安装 symfony/error-handler (v4.4.9):从缓存中加载
- 正在安装 symfony/http-kernel (v4.4.9):从缓存中加载
- 正在安装 symfony/dependency-injection (v4.4.9):从缓存中加载
- 正在安装 symfony/console (v4.4.9):从缓存中加载
- 正在安装 symfony-cmf/routing (2.3.2):从缓存中加载
- 正在安装 stack/builder (v1.0.6):从缓存中加载
- 正在安装 ralouphie/getallheaders (3.0.3):从缓存中加载
- 正在安装 psr/http-factory (1.0.1):从缓存中加载
- 正在安装 pear/pear_exception (v1.0.1):从缓存中加载
- 正在安装 pear/console_getopt (v1.4.3):从缓存中加载
- 正在安装 pear/pear-core-minimal (v1.10.10):从缓存中加载
- 正在安装 pear/archive_tar (1.4.9):从缓存中加载
- 正在安装 masterminds/html5 (2.7.0):从缓存中加载
- 正在安装 laminas/laminas-zendframework-bridge (1.0.4):从缓存中加载
- 正在安装 laminas/laminas-stdlib (3.2.1):从缓存中加载
- 正在安装 laminas/laminas-escaper (2.6.1):从缓存中加载
- 正在安装 laminas/laminas-feed (2.12.2):从缓存中加载
- 正在安装 laminas/laminas-diactoros (2.3.0):从缓存中加载
- 正在安装 guzzlehttp/psr7 (1.6.1):从缓存中加载
- 正在安装 guzzlehttp/promises (v1.3.1):从缓存中加载
- 正在安装 guzzlehttp/guzzle (6.5.4):从缓存中加载
- 正在安装 doctrine/lexer (1.2.1):从缓存中加载
- 正在安装 egulias/email-validator (2.1.17):从缓存中加载
- 正在安装 doctrine/annotations (1.10.3):从缓存中加载
- 正在安装 doctrine/reflection (1.2.1):从缓存中加载
- 正在安装 composer/semver (1.5.1):从缓存中加载
- 正在安装 asm89/stack-cors (1.3.0):从缓存中加载
- 正在安装 drupal/core (9.0.2):从缓存中加载 无法从 dist 下载 drupal/core:无法删除 /mnt/c/Users/Paul/Sites/D9/my_site_name_dir/vendor/composer/782129de/drupal-core-ea6e0ce/lib/Drupal/Core: 现在正在尝试从源下载
- 正在安装 drupal/core (9.0.2):从缓存中克隆 ea6e0cef32
[Symfony\Component\Process\Exception\ProcessTimedOutException] 进程“git checkout '9.0.2' --” 超过了 300 秒的超时。
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--无安全http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ paul@DESKTOP-TQA1I7L:/mnt/c/Users/Paul/Sites/D9$ composer create-project drupal/recommended-project my_site_name_dir 在“./my_site_name_dir”
创建一个“drupal/recommended-project”项目[InvalidArgumentException] 项目目录“/mnt/c/Users/Paul/Sites/D9/my_site_name_dir”不为空。
create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--无安全http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [] [] []
阅读一些更新的文档后,我现在明白问题是我试图在 .mnt/c/Users/Paul
的 Windows 文件系统下执行此操作,而不是 Linux 位置 /home/paul
除了无错误地完成,性能也得到了极大的提高。
您绝对需要将您的项目放在 WSL2 文件系统上以获得良好的性能,是的。请参阅@MrPaulDriver 的回答,绝对关键。
但我们建议在任何地方都使用 ddev composer
。这使得您的作曲家使用与您的项目运行时相同的作曲家设置和 php 版本构建,并且它可以帮助大多数人。因此,甚至不需要在 ddev 主机上安装 php 或 composer。
例如,Drupal 9 Quickstart 显示
mkdir my-drupal9-site
cd my-drupal9-site
ddev config --project-type=drupal9 --docroot=web --create-docroot
ddev start
ddev composer create "drupal/recommended-project"
ddev composer require drush/drush
ddev launch
我想即使在您之前的设置中这对您也有用;它适用于很多地方。
有关更多详细信息,请查看文档中的 DDEV and Composer。