当前位置: 首页 > 知识库问答 >
问题:

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

冯鸿光
2023-03-14

我有没有问题安装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 extenshtml" target="_blank">ion 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].

我需要调整作曲家吗。json文件?

如此简单,安装和配置intl扩展。从PHP 5.3开始,Intl扩展默认是分发的,但是一些分发版,如MAMP,没有Intl,所以您需要获取它。我用了梨:

我的步骤:

  • 安装Intl扩展(由PECL维护):$pear Instpcl/intl-您可能必须先将pcl通道添加到pear。
  • 如果您使用MAMP,并且从未使用过pear/epl,请检查lullabot的有用博客文章;MAMP没有随php源代码一起提供,所以您必须下载PHP版本的源代码,并将源代码移动到/应用程序/MAMP/bin/php/php[版本]/包括/php(如博客文章所述)
  • PEAR找不到我的php.ini,所以我不得不手动添加扩展名=intl.so到php.ini.在MAMP中,您可以通过转到File轻松编辑php.ini

命令行:

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

共有3个答案

东郭凯捷
2023-03-14

关于这个或类似问题的解决方案可以在这里找到:ICU和部署问题

作曲家的行为应该是智能选择正确的icu组件:

  • symfony/icu 1.0.*:当intl扩展不可用时
  • symfony/icu 1.1.*:当intl编译为ICU4.0或更高版本时
  • symfony/icu 1.2.*:当intl编译为ICU4.4或更高

安装symfony 2.3(理论上)应该没有错误。没有内部扩展。

但是,当您的开发环境与本文中提到的生产服务器不同时,您可能会陷入困境:

  • 开发机器是用ICU4.4或更高版本编译的,但服务器是编译的

当您没有生产服务器的根访问权限时,您可以按照本文中提到的方法进行修复。(调整composer.json)

希望这些额外的信息对我有所帮助,因为它帮助了我处理不同环境下的特殊情况。

燕元明
2023-03-14

许多应用程序只支持“en”语言环境,不需要翻译功能或php-intl。如果是您,或者您无法在服务器上安装php intl,您可以显式地将symfony/icu~1.0添加到编写器中。json。1.0不需要php intl,而1.1需要。

如果您不需要翻译功能:

$ php bin/composer.phar require symfony/icu ~1.0

如果没有此声明,并尝试安装symfony/symfony 2.3 Composer可能会尝试安装symfony/icu~1.2,这将需要您安装php-intl。

Symfony Intl组件的文档在ICU和部署问题下更广泛地明确涵盖了这一点。

邴俊达
2023-03-14

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

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

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

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

php。伊尼

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

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

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

检查您当前的intl版本从PHP与:

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

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

将最低稳定性标志@dev或@rc添加到您的依赖项中,如下所示:

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

作曲家中的默认稳定性是稳定的,而symfony 2.3分支目前不稳定(它是@rc)。在这里阅读更多稳定性标志。

 类似资料:
  • 我已经创建了作曲家包,composer.json是 现在,当我安装 包,我需要那个作曲家安装所有需要的包: 但它没有安装它。 我尝试作曲家更新,作曲家安装。有人能帮忙吗? C项目omposer.json看起来像 我能做的是,作曲家自动安装所有软件包所需的依赖项????谢谢你的建议。

  • 我正试图通过Composer(OS X El Capitan 10.11.3)安装Yi2。 是我干的 然后 我也有类似的错误 我不知道为什么会这样。我试图重新安装(composer和asset插件)、diff版本以及yiisoft/yii2.0的相同问题。9需要bower asset/jquery 2.2@稳定的

  • 我有一个问题作曲家和Laravel。我找到了很多类似的话题,但它不起作用。所以当我尝试安装Laravel时,它会显示给我:安装laravel/laravel(v5.5.22) > 安装laravel/laravel(v5.5.22):加载从缓存中创建的项目 @php-r“文件存在('.env')| |复制('.env.example','.env');”加载具有包信息更新依赖项(包括require

  • 首先,有一些相关的帖子并不真正适合我的问题。 Composer不会安装依赖项 还有一些。 我有一个Symfony项目,其中包含一些私人包。这些是风投公司参考的: 这和预期的一样。但是,私有包yyy引用了另一个私有包(我们称之为sub-yyy),它也由package composer.json文件中的类型vcs引用。 如果我运行作曲家安装失败与消息: 问题1-yyyy的安装请求- 潜在原因: 包名中

  • 但它似乎都很好,文件夹结构是正确的。 您正在运行禁用SSL/TLS保护的Composer。正在加载包含包信息的composer存储库警告:通过http访问packagist.org,这是一种不安全的协议。更新依赖项(包括require dev)无法将您的需求解析为一组可安装的包。 我将php重新安装到C:/php,我将php.ini文件提取到C:/I中,我设置了环境变量,还取消了扩展名的注释

  • 问题内容: 我正在尝试在Ubuntu PC上使用composer安装laravel安装程序,但是在安装过程中出现此错误。您的要求无法解决为一组可安装的软件包。 出现错误,然后我使用此注释: 问题答案: 它说它需要 zip扩展名 laravel / installer v1.4.0需要ext-zip ........ 安装与已安装的php版本相对应的版本: