在编译安装php时系统会报 configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != … 这是因为libzip 版本过低 解决方法如下
1、卸载以前的版本 ,没有的话也可以不用卸载
yum remove libzip libzip-devel
2、安装cmake3
yum install -y cmake3
//如果找不到包就选择源码安装
cmake源码安装方法:请移步至这里
安装libzip1.8.0
1、去官网下载libzip 想要最新的也可以去https://libzip.org/download/ 或者github寻找
wget -c https://libzip.org/download/libzip-1.8.0.tar.gz
2、解压安装包并创建build目录
tar -zvxf cmake-3.23.0.tar.gz
//进入安装包
cd cmake-3.23.0
//创建build目录
mkdir build && cd build
下列方法 二选一, 不同的路径操作不一样
方法一:(推荐) 毕竟安装到/usr/lib64 很多东西会自动帮你加载关联,可以省事
注意使用cmake .. 的情况是会把libzip 安装到/usr/lib64 请自行了解/usr/local/lib64 和 /usr/lib64 的区别,为了把他安装到/usr/lib64我们选择给他指定目录
//在刚刚建立的build目录中
cmake -DCMAKE_INSTALL_PREFIX=/usr ..
//编译软件
make
//安装软件
make install
//通过命令查看是否生效 二选一
方式1:查单个(推荐) 有的话会提示 -lzip
pkg-config --libs libzip
方式2:列出所有看看有没有libzip
pkg-config --list-all
这样我们就大公告成了
方法二: 注意使用cmake .. 的情况是会把libzip 安装到/usr/local/lib64
cmake ..
编译软件
make
安装软件
make install
安装成功后,进 /usr/local/lib64/ 文件夹里面发现 libzip.so 之类的文件夹全部在lib64这边目前他仅仅是安装成功而已,还没有生效,在这里列出2个生效方法任选其一即可
检查libzip有没有生效
pkg-config --libs libzip
//发现返回错误信息No package 'libzip' found 或者提示其他内容,请自行判断
生效方式1:
我们需要设置 pkg_config_path 环境变量方法,先看pkg_config_path的值有没有生效,没有的话就添加接下来查看是不是没有添加path
接下来查看是不是没有添加path
echo $PKG_CONFIG_PATH
//发现没有返回东西,或者返回的东西没有libzip相关的信息所以我们需要添加path
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig
//执行下面代码检查下有没有成功
pkg-config --libs libzip
//得到的回复是有libzip 信息的就代表成功了
-L/usr/local/lib64 -lzip
注意:$PKG_CONFIG_PATH 系统重启或者开启新的shell终端会话会失效,具体原因请自行了解
这样我们就大公告成了
生效方式2:(推荐)
方法2也是通过设置pkg_config_path 环境变量方法,但是是永久有效,不受重启影响,先看pkg_config_path的值有没有生效,没有的话就添加
echo $PKG_CONFIG_PATH
//发现没有返回东西,或者返回的东西没有libzip相关的信息
给~/.bashrc 的最底部 添加PKG_CONFIG_PATH配置,当然你也可以添加到别的地方无非就是用不同的配置文件 如profile等等在这里就懒得写了,~/.bashrc只是针对用户自己而言,请自行了解 profile和bashrc区别
我是在root 账户下添加的,那么只有这个账户下会生效,如果是别的账户需要使用的话请在别的账户下添加
//编辑bashrc
vi ~/.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig
export PKG_CONFIG_PATH
//使path 生效
source ~/.bashrc
//重启或执行source ~/.bashrc 都可以使path生效
//再次进入系统我们执行下列操作检查一下有没有成功
pkg-config --libs libzip
//得到的回复是有libzip 信息的就代表成功了,重启的话也不会丢失
-L/usr/local/lib64 -lzip
这样生效方式2我们就大公告成了。