Aeon_愛戀 发表于 2017-8-1 01:05:13

CentOS7 编译 PHP 的 imap 扩展出错,EPEL源内丢失 uw-imap-devel 。(官方已修复)

EPEL源 在 2017年7月31日 14:57 更新 CentOS7 的 uw-imap 到 2007f-16.el7 后,
已不存在以下问题:

安装 LNMP1.4版 后,编译 PHP5.6 的 imap 扩展 时:
{
cd /root/lnmp1.4/src
tar jxf php-5.6.31.tar.bz2
cd /root/lnmp1.4/src/php-5.6.31/ext/imap
/usr/local/php/bin/phpize
ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so
./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
}
出错:
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.
经百度搜索,发现是 imap 扩展缺少依赖包导致的。

命令运行:yum install libc-client uw-imap-devel
安装成功:libc-client-2007f-14.el7.x86_64 (EPEL源)
查找不到:uw-imap-devel

在 EPEL源 的软件库内查找不到 uw-imap-devel,EPEL源 其他镜像也查找不到 uw-imap-devel,目录内只有:
uw-imap-2007f-14.el7.x86_64.rpm                  12-Jul-2017 00:05   67K
uw-imap-utils-2007f-14.el7.x86_64.rpm            12-Jul-2017 00:05   50K


在安装过 LNMP(包含 imap) 的 CentOS 7 使用 yum update 更新系统,出现以下问题:

正在解决依赖关系
--> 正在检查事务
---> 软件包 libc-client.x86_64.0.2007f-4.el7.1 将被 升级
--> 正在处理依赖关系 libc-client(x86-64) = 2007f-4.el7.1,它被软件包 uw-imap-devel-2007f-4.el7.1.x86_64 需要
---> 软件包 libc-client.x86_64.0.2007f-14.el7 将被 更新
--> 解决依赖关系完成
错误:软件包:uw-imap-devel-2007f-4.el7.1.x86_64 (@epel)
          需要:libc-client(x86-64) = 2007f-4.el7.1
          正在删除: libc-client-2007f-4.el7.1.x86_64 (@epel)
            libc-client(x86-64) = 2007f-4.el7.1
          更新,由: libc-client-2007f-14.el7.x86_64 (epel)
            libc-client(x86-64) = 2007f-14.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest


谷歌搜索:uw-imap-devel-2007f-4.el7.1.x86_64
找到: http://dl.marmotte.net/rpms/redhat/el7/x86_64/uw-imap-2007f-4.el7.1/   其目录下:
build.log.gz                                       29-Aug-2014 17:53   35K
libc-client-2007f-4.el7.1.x86_64.rpm               29-Aug-2014 17:56    570K
root.log.gz                                        29-Aug-2014 17:53    3839
state.log.gz                                       29-Aug-2014 17:53   308
uw-imap-2007f-4.el7.1.src.rpm                      29-Aug-2014 17:56      2M
uw-imap-2007f-4.el7.1.x86_64.rpm                   29-Aug-2014 17:56   75K
uw-imap-debuginfo-2007f-4.el7.1.x86_64.rpm         29-Aug-2014 17:56      1M
uw-imap-devel-2007f-4.el7.1.x86_64.rpm             29-Aug-2014 17:56   62K
uw-imap-static-2007f-4.el7.1.x86_64.rpm            29-Aug-2014 17:56    466K
uw-imap-utils-2007f-4.el7.1.x86_64.rpm             29-Aug-2014 17:56   58K



说明 EPEL源 在 2017年7月12日 更新 CentOS7 的 uw-imap 到 2007f-14.el7 后,丢失了 uw-imap-debuginfo,uw-imap-devel,uw-imap-static 。

目前自己用的解决办法:
先安装:libc-client
yum install libc-client


再强制安装:uw-imap-devel
rpm -ivh --force --nodeps http://dl.marmotte.net/rpms/redhat/el7/x86_64/uw-imap-2007f-4.el7.1/uw-imap-devel-2007f-4.el7.1.x86_64.rpm

然后,再编译 PHP 的 imap 扩展就成功了。
{
cd /root/lnmp1.4/src
tar jxf php-5.6.31.tar.bz2
cd /root/lnmp1.4/src/php-5.6.31/ext/imap
/usr/local/php/bin/phpize
ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so
./configure --with-php-config=/usr/local/php/bin/php-config --with-kerberos --with-imap-ssl
make && make install
}

等待 EPEL源 更新出 uw-imap-devel 后,使用 yum update 更新 uw-imap-devel 到匹配版本。

似乎 LNMP1.4版 内,原来就有集成安装 CentOS7 的 libc-client 与 uw-imap-devel 的命令。

[ 本帖最后由 Aeon_愛戀 于 2017-8-5 23:52 编辑 ]

licess 发表于 2017-8-1 09:20:14

libc-client 这个是centos官方源里的,先卸载后,yum install 时加上 --disablerepo=epel 参数使用官方仓库安装
页: [1]
查看完整版本: CentOS7 编译 PHP 的 imap 扩展出错,EPEL源内丢失 uw-imap-devel 。(官方已修复)