我正在尝试安装 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