gpt4 book ai didi

php - 通过 Composer 安装 Symfony 2.3.x 时出现 lib-icu 依赖问题

转载 作者:IT老高 更新时间:2023-10-28 11:49:09 24 4
gpt4 key购买 nike

我使用 Composer 安装 Symfony 2.2.x 没有问题,我一直只是在 http://symfony.com/download 复制稳定版本.

composer create-project symfony/framework-standard-edition myproject/ 2.2.1

(我已全局安装 Composer)
对 2.3.0-RC1 感到好奇,我认为这会顺利进行:

composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.0-RC1

但因以下错误而关闭:

Your requirements could not be resolved to an installable set of packages.

Problem 1
- symfony/icu v1.2.0-RC1 requires lib-icu >=4.4 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
- symfony/icu v1.1.0-RC1 requires lib-icu >=3.8 -> the requested linked library icu has the wrong version installed or is missing from your system, make sure to have the extension providing it.
- symfony/symfony v2.3.0-RC1 requires symfony/icu >=1.0,<2.0 -> satisfiable by symfony/icu[v1.1.0-RC1, v1.2.0-RC1].
- Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0-RC1].

我需要调整 composer.json 文件吗?


解决方案更新

我错过了 php intl extension它提供了 lib-icu

如此简单,安装和配置 intl 扩展。自 PHP 5.3 起,默认分发 Intl 扩展,但某些分发,如 MAMP,没有 Intl,因此您需要获取它。我用:

我的步骤:

  • 安装 Intl 扩展(由 PECL 维护):$ pear install pecl/intl — 您可能需要先将 pecl channel 添加到 pear。
  • 如果您使用 MAMP 并且从未使用过 pear/pecl 检查 lullabot's helpful blog post ; MAMP 不附带 php 源,因此您必须 download the source for your php version并将源代码移动到 /Applications/MAMP/bin/php/php[version]/include/php (如博客文章中所述)
  • PEAR 找不到我的 php.ini,所以我不得不手动将 extension=intl.so 添加到 php.ini。在 MAMP 中,您可以通过转到文件 > 编辑模板 > php.[version].ini
  • 轻松编辑 php.ini

命令行:

  • 当使用 Composer 或 Symfony 的控制台 CLI 时,您还需要 Intl,并且由于 php CLI 通常使用不同的 php.ini,因此您需要添加扩展那里也有指令。要查找 CLI 的 php.ini,只需执行 $ php -i |grep php\.ini 以发现文件路径并将 extension=intl.so 添加到该 php.ini也一样。
  • 要检查是否安装了 Intl,您可以执行 $ php -m 来检查可用模块。

最佳答案

更新你的 php-intl 扩展,这就是 icu 错误的来源!

sudo aptitude install php5-intl                 // i.e. ubuntu
brew install icu4c // osx

检查扩展是否已启用并在 php.ini 中正确配置。

(提示:php-cli 有时使用不同的 php.ini)

php.ini

extension=intl.so       ; *nix
extension=php_intl.dll ; windows

[intl]
intl.default_locale = en_utf8
intl.error_level = E_WARNING

如果扩展已成功启用,请从终端检查您的 phpinfo()php -m

使用以下命令从 php 检查您当前的 intl 版本:

Intl::getIcuVersion();
Intl::getIcuDataVersion();

注意:不再需要(symfony 2.3 已同时发布)

请像这样将最低稳定性标志@dev 或@rc 添加到您的依赖项中:

composer create-project symfony/framework-standard-edition mynewerproject/ 2.3.*@dev 

composer 中的默认稳定性是 symfony 2.3 分支当前不是稳定的(它是 @rc )。阅读更多稳定性标志 here .

关于php - 通过 Composer 安装 Symfony 2.3.x 时出现 lib-icu 依赖问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16753105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com