编译安装
1 前言
一个问题,一篇文章,一出故事。
本章由于需要在Oracle Linux 9.x中编译PHP imap library而整理。
由于RedHat或oracle官方不再提供uw-imap-devel或uw-imap-static,因此如果需要在Oracle Linux 9.x编译该模块则需要自行编译w-imap。
因此,本章的安装不一定完美,对于uw-imap并没有完整测试,而是只解决了PHP imap library安装所需的依赖关系,类似代替如下指令,
dnf install -y uw-imap-devel dnf install -y uw-imap-static
或者说,解决Oracle Linux 9.x环境中编译PHP imap library的如下错误提示,
configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information. configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
2 最佳实践
2.1 安装前的准备
2.1.1 准备编译环境
dnf -y install gcc gcc-c++ make expat-devel libtool
2.1.2 下载软件包
cd ~ wget -O imap-master.zip https://codeload.github.com/uw-imap/imap/zip/refs/heads/master
2.1.3 解压安装包
unzip imap-master.zip
2.2 编译安装
2.2.1 编译软件包
cd ~/imap-master/ make lnp
如果遇到如下错误,
osdep.c:90:10: fatal error: security/pam_appl.h: No such file or directory
你需要使用如下命令解决依赖关系,
dnf install -y pam-devel
如果遇到如下错误,
osdep.c:267:10: fatal error: x509v3.h: No such file or directory
你需要使用如下命令解决依赖关系,
dnf install -y openssl-devel
如果已经编译还是有错误提示,你需要细看编译提示,按照提示尝试如下命令协助编译找到SSL的真实路径,
ln -s /usr /usr/local/ssl
2.2.2 安装软件包
cd ~/imap-master/ make install
如果遇到如下错误提示,
make: *** No rule to make target 'install'. Stop.
这可能是源码没有定义编译后安装的规则,你可以尝试使用如下命令安装,
mkdir /usr/include/imap find imapd -name *.h -exec cp {} /usr/include/imap/ \; find c-client -name *.h -exec cp {} /usr/include/imap/ \; cp c-client/c-client.a /usr/lib64/libc-client.a ln -s /usr/lib64/libc-client.a /usr/lib/ #cp imapd/imapd /usr/local/sbin/ #cp ipopd/ipop2d /usr/local/sbin/ #cp ipopd/ipop3d /usr/local/sbin/
参阅文档
====================
github
———-
https://github.com/uw-imap/imap
wiki
———-
https://en.wikipedia.org/wiki/UW_IMAP
没有评论