如何通过自制程序在 Debian 和 OSx 上安装 libzip 1.2?

如何通过自制程序在 Debian 和 OSx 上安装 libzip 1.2?

我想用http://php.net/manual/en/ziparchive.setencryptionname.php但这依赖于 libzip 版本 1.2 的可用。在 Debian 上,$ dpkg -s libzip-dev打印

Package: libzip-dev
Status: install ok installed
[...]
Source: libzip
Version: 1.1.3-1+0~20170825111722.1+jessie~1.gbp254624
Depends: libzip4 (= 1.1.3-1+0~20170825111722.1+jessie~1.gbp254624), zlib1g-dev

为了使加密可用,我需要 libzip >= 1.2。我怎样才能得到它?

同样的问题也适用于我的本地开发机器,我通过 homebrew 安装了 PHP 以及 libzip(被列为版本 1.3.0):

$ brew install libzip
> Warning: libzip 1.3.0 is already installed

在这两种情况下我必须做什么?

答案1

您运行的 Debian 版本一定非常旧。我正在运行最近的 Ubuntu,它源自 Debian + 这是我所看到的......

lxd: net11-zesty # dpkg -l |  grep zlib
ii  zlib1g:amd64                       1:1.2.11.dfsg-0ubuntu1                  amd64        compression library - runtime
ii  zlib1g-dev:amd64                   1:1.2.11.dfsg-0ubuntu1                  amd64        compression library - development

因此,要修复您的 Debian 安装,请升级 Debian + 将安装最新的 zlib。

我你必须从头开始构建,使用LFS 构建说明+ 注意问题。如果您在系统 zlib-1.3 之上安装 zlib-1.2,可能会遇到很多问题 + 可能会中断重新启动。

安装此库在 /opt 或 /usr/local 等位置 + 使用 zlib-1.2 安装目录从源代码构建 PHP 扩展。

对于您的本地计算机,您将执行相同的操作。既然你提到了brew,我猜你使用的是Mac。您在这里也必须非常小心,因为尝试构建一个新库,希望会触发重建或重新链接依赖于该库的所有代码。

我使用 Macports,因为依赖机制似乎工作得更好。

如果我使用brew,我想删除brew安装的所有代码+重新安装所有brew构建的代码。这应该会获取所有最新代码,包括 zlib。

最后一项。既然您尝试构建 PHP 扩展,我强烈建议您从一个全新的、更新的操作系统(如 Ubuntu Zesty)开始,以节省您的时间和理智。灯堆栈,因此您有最新的 Apache-2.4.29 + PHP-7.1.11 作为起点。然后你可以从普通的 PPA 安装软件包+你的问题将自行解决,无需构建源代码。

相关内容