尝试安装 php-zip - 尽管我已经安装了 1.0.1,但仍出现 libzip4 依赖项(> = 1.0)错误

尝试安装 php-zip - 尽管我已经安装了 1.0.1,但仍出现 libzip4 依赖项(> = 1.0)错误

我正在尝试安装 php zip 插件

我跑:

sudo apt-get install php-zip (also php7.0-zip) 

我得到了 libzip4(>=1.0)的依赖项缺失返回,但是当我尝试通过 apt-get 安装或更新 libzip4 时 - 它显示我已经安装了 1.0.1(我认为它可能有包名称或 libzip4:i386 的别名-> 不确定这是否与这个问题有关,但与我安装的其他 php 插件相比,命名约定对我来说看起来很奇怪)。

带输出的终端命令:

sudo apt-get install php-zip

正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 注意,选择“php7.0-zip”而不是“php-zip” 某些软件包无法安装。这可能意味着您请求了一个不可能的情况,或者如果您使用的是不稳定的发行版,则某些必需的软件包尚未创建或已从传入中移出。以下信息可能有助于解决这种情况:

以下软件包具有未满足的依赖项:php7.0-zip:依赖: libzip4 (>= 1.0) 但无法安装

E:无法纠正问题,您持有破损的包裹。

&&:

sudo apt-get install libzip4

正在读取软件包列表...完成 正在构建依赖关系树
正在读取状态信息...完成 libzip4:i386 已经是最新版本 (1.0.1-0ubuntu1)。已升级 0 个软件包,新安装 0 个软件包,要删除 0 个软件包,未升级 20 个软件包。

系统:

运行 Ubuntu Xenial 16.04 桌面 vanilla 的 Lenovo G500s 安装 php/apache2 标准版本 (库存 Ubuntu LAMP 堆栈) php 版本:7.0.15-0ubuntu0.16.04.4

任何帮助都非常感谢!!

编辑:我也尝试过使用 PECL 安装(我相信是同一个插件)

sudo pecl install zip

下载 zip-1.14.0.tgz ... 开始下载 zip-1.14.0.tgz (248,476 字节) ..............................完成:248,476 字节 8 个源文件,正在构建:phpize sh: 1:phpize:未找到 错误:`phpize' 失败

答案1

要安装libzip4,您必须将 Ubuntu 存储库添加到您的 apt 源列表中。这可以通过以下方式完成

sudo apt-add-repository main
sudo apt-add-repository restricted
sudo apt-add-repository universe
sudo apt-add-repository multiverse

这里有一些例子

答案2

@ravery 的回答帮助我理解了一半:

但问题并不在于冲突,而在于 32 位软件包无法满足 64 位安装的依赖要求(尽管通常可以安装具有 32 位依赖项的 32 个版本的软件),至少在这种情况下是这样(或者一般来说 - 我不知道)。

不幸的是,64 位版本要么没有安装候选项,要么有其他我不知道且无法在网上找到的包名称。

sudo apt-get install libzip4  

正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 软件包 libzip4 不可用,但被另一个软件包引用。这可能意味着软件包缺失、已过时或只能从其他来源获得

E:软件包‘libzip4’没有安装候选项


我似乎也找不到 64 位包的 ppa......

如果您遵循@ravery 的建议并执行以下操作:

sudo apt-get purge libzip4

你得到:

正在读取软件包列表... 完成 正在构建依赖关系树
正在读取状态信息... 完成 下列软件包将被删除:libzip4:i386* 0 个软件包已升级,0 个软件包已新安装,1 个软件包将删除,20 个软件包未升级。此操作后,将释放 121 kB 磁盘空间。是否要继续?[Y/n] y(正在读取数据库...当前安装了 311771 个文件和目录。) 正在删除 libzip4:i386(1.0.1-0ubuntu1)... 正在清除 libzip4:i386(1.0.1-0ubuntu1)的配置文件... 正在处理 libc-bin(2.23-0ubuntu9)的触发器...

因此 32 位版本现已删除

然后:

前往 pkgs.org: https://ubuntu.pkgs.org/16.04/ubuntu-universe-amd64/libzip4_1.0.1-0ubuntu1_amd64.deb.html

您可以在此处下载并手动安装 apt-get 没有或无法按名称找到的 64 位 .deb 包...

最后 赶紧跑:

sudo apt-get install php-zip

依赖性问题已解决,插件正常安装!

答案3

libzip4:i386 是 32 位软件包。并且与 64 位版本冲突。您使用的是 32 位计算机吗?

如果你使用的是 64 位,则执行以下操作:
sudo apt-get purge libzip4

然后:
sudo apt-get install php-zip

如果你使用的是 32 位,那么:
sudo apt-get install php-zip:i386

相关内容