centos7.9编译安装libzip1.8.0

在编译安装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我们就大公告成了