安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题
Posted
技术标签:
【中文标题】安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题【英文标题】:Problems installing Symfony 2.4.1 lib-icu 4.4 dependency 【发布时间】:2014-01-27 04:58:25 【问题描述】:我遇到了与 this one 相同的问题,但那里提供的解决方案对我不起作用。
我从the Symfony Downloads Page 下载了带有供应商的 Symfony 2.4.1 标准供应商包。提取文件并下载 composer.phar 后,我运行 php composer.phar install
并收到此错误:
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- symfony/icu v1.2.0 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.2.0 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.
- Installation request for symfony/icu v1.2.0 -> satisfiable by symfony/icu[v1.2.0].
按照上面链接的线程上的说明,我更新了 PEAR 库并执行了sudo pear install pecl/intl
。 (这是在 CentOS 上,所以我没有遵循 MAMP 的东西)。这没有用,我意识到我必须做一个sudo yum install libicu
。在此之后,sudo pear install pecl/intl
工作,我编辑php.ini
添加extension=intl.so
行,然后重新启动 Apache 服务器。
但我仍然遇到与上述相同的错误,此外,每当我运行 PHP 时,它都会发出警告:
PHP Warning: Module 'intl' already loaded in Unknown on line 0
查看phpinfo()
的输出,我看到安装的intl 版本是1.1.0,ICU 版本是4.2.1
(这解释了为什么Symfony 抱怨它需要4.4)。但是当我这样做时/usr/bin/pecl install intl
它说
pecl/intl is already installed and is the same as the released version 3.0.0
而且sudo yum install libicu
应该已经安装了最新版本。
有什么办法可以得到4.4版本的吗?
【问题讨论】:
【参考方案1】:针对您的具体情况,您应该在您的 composer.json 文件中指定您要使用“symfony/icu”:“1.1.*”
请参阅本页的“ICU 和部署问题”部分:https://symfony.com/doc/2.4/components/intl.html
【讨论】:
谢谢,该页面有帮助。 抱歉,如果这不是此反馈的地方,但我找不到其他地方可以放置它。有人建议将链接更新到我通常同意的当前文档,但在这种情况下,问题是特定于某个 symfony 范围的(这些部署问题仅影响以下 Symfony 版本:2.3.0 到 2.3。 20 个版本,任何 2.4.x 版本和 2.5.0 到 2.5.5 版本)并且不适用于“当前”。如果您转到文档的“当前”版本,则此答案中提到的“ICU 和部署问题”不存在。 这里是原始链接,其中包括解释为什么这个解决方案有效:symfony.com/doc/2.4/components/intl.html【参考方案2】:您正在编辑错误的 php.ini 文件
在控制台中运行这个命令:
php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini
编辑该文件。 (这是 php cli 文件)
【讨论】:
没有/etc/php5
目录。有/etc/php.ini
(我编辑的文件)和一个包含这些文件的/etc/php.d
目录:curl.ini fileinfo.ini json.ini mysqli.ini pdo.ini pdo_sqlite.ini sqlite3.ini xmlreader.ini xsl.ini dom.ini intl.ini mbstring.ini mysql.ini pdo_mysql.ini phar.ini wddx.ini xmlwriter.ini zip.ini
你说运行的命令给出了这个:Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini
以上是关于安装 Symfony 2.4.1 lib-icu 4.4 依赖项的问题的主要内容,如果未能解决你的问题,请参考以下文章
Windows 安装 Symfony 2.2 框架 - 安装成功 !!