我对安装软件包几乎一无所知。不久前,我通过遵循一个非常具体的教程,成功地安装了Zend Framework 1 with Yum。
现在我需要PHP intl扩展,但我不知道如何安装它。
是的
yum list php*intl
看到有一个空着所以我就去了
yum install php-intl
并收到以下错误消息:
Error: Package: php-intl-5.3.3-14.el6_3.x86_64 (updates)
Requires: php-common = 5.3.3-14.el6_3
Installed: php-common-5.3.17-2.el6.remi.x86_64 (@remi)
php-common = 5.3.17-2.el6.remi
Available: php-common-5.3.3-3.el6_2.8.x86_64 (base)
php-common = 5.3.3-3.el6_2.8
Available: php-common-5.3.3-14.el6_3.x86_64 (updates)
php-common = 5.3.3-14.el6_3
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
我没有尝试消息中提到的建议,因为我不知道它们会做什么,我害怕破坏什么。这是一台生产机器,我没有其他机器来测试。我试图找到一个rpm下载,这是我的PHP相同的版本,但没有运气。
这两个建议有什么作用?它们是否 * 安全 *?我还可以尝试安装intl扩展吗?
6条答案
按热度按时间idfiyjo81#
因为你有来自remi库的php-commom,所以你也需要从remi获取php-intl。
添加
--enable-repo
选项,如下所示:rsl1atfo2#
如果你有更高的PHP版本,比如5.6,你必须同时启用
remi
和remi-php56
repos来安装所有附加的依赖项:x3naxklr3#
我使用以下步骤通过pecl成功安装了INTL。
1)安装icu库(& L):
yum -y install php-devel phpize
2)php-devel包和phpize:
yum -y install php-devel phpize
个3)当然还有GCC:
yum -y install gcc gcc-cpp gcc-c++
这是工作的me.my php版本是5.6.12
vnzz0bqm4#
对于php 7.0使用
zi8p0yeb5#
Yum抛出了一个错误,因为我们正在尝试将多个软件包更新到有冲突的版本。您的Yum输出显示php-intl需要一个特定版本的php-common。
这说明你已经安装了一个更新的php-common(5.3.17-2)版本,而不是php-intl允许的版本。
我认为你有两个选择。(作为一个新手,我自己,我不会尝试这些没有在开发环境中练习。)
1)删除remi软件包
引用超级用户的一个类似问题:“尝试删除所有的remi php包,禁用remi仓库,安装默认的centos 6 php 5.3.3包。”
https://superuser.com/questions/505340/centos-6-how-to-install-php-mysql-when-php-common-remi-is-present
2)将php-common降级到版本5.3.3-14
我不知道你是否会遇到更多的依赖问题,不得不降级其他软件包。我在这里找到了更多的细节。
https://www.centos.org/modules/newbb/viewtopic.php?topic_id=40567&forum=56
其他Stack Exchange网站也提出了类似的问题。
https://serverfault.com/search?q=centos+error+package(370个结果)
https://unix.stackexchange.com/search?q=centos+error+package(57个结果)
hujrc8aj6#
我想对费尔南多·瓦勒的回答做一点解释。
在我的Fedora 35机器上,我安装了多个php。为了检查有多少,我使用了Symfony的一个工具(我不知道如何这么快地完成其他操作):
假设我在8.1.10版本中缺少
intl
,首先检查intl.so
是否确实不在它的modules目录中:php81 -r "echo ini_get('extension_dir');"
.要安装它,检查软件包由
dnf list php*intl
,你会得到这样的东西:选择你需要的,比如说
php8.1.10
,并安装intl扩展:sudo dnf install php81-php-intl
。它将在php 8.1的模块目录中弹出。