Debian - apt-get - 依赖:php5-mysql 但不会安装

Debian - apt-get - 依赖:php5-mysql 但不会安装

我们需要 php5-mysqlnd,因此 php5-mysql 被删除了,现在每当我们想用 apt-get 安装某些东西时,包就有未满足的依赖关系。

我如何或在哪里可以编辑依赖项以摆脱这个烦人的错误消息?我们的服务器现在运行良好,我不想弄乱某些东西并错误地删除包。

我们使用 Debian 7.7 (wheezy) 和 apt-get 提前感谢您的帮助。

输出如下:

 The following packages have unmet dependencies:
     psa-php5-configurator : Depends: php5-mysql but it is not going to be installed
    E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
    -mysql but it is not going to be installed

答案1

此问题是由 Plesk 12 引起的,它不支持 mysqlnd。虽然 mysqldn 没有得到官方支持,但它似乎可以与 mysqldn 配合使用。不建议在生产环境中修改这些设置。这是一个丑陋的黑客行为,但可以做到。

您需要修改 .deb 包并删除冲突的依赖项。获取 .deb 包并将其解压到临时目录中:

dpkg-deb -x psa-php5-configurator_x.x.x-x_x.deb tmp_dir
dpkg-deb --control psa-php5-configurator_x.x.x-x_x.deb tmp_dir/DEBIAN

现在您可以根据需要编辑包,然后重新打包并安装它:

dpkg -b tmp_dir psa-php5-configurator_my-ugly-hack.deb
sudo dpkg -i psa-php5-configurator_my-ugly-hack.deb

请注意,由于这是一个丑陋的黑客行为,您需要在每次 Plesk 更新时再次执行此操作。祝您在您选择的道路上好运。

答案2

如果我们认为 php5mysql 的功能已被取代,并且系统将在没有该包的情况下运行,我们可以创建一个提供该包名称的虚拟包。当量是一个生成这种包的工具。

安装 equivs。文档很简短,使用也很简单。我们编写一个配置文件。我们可以从示例模板配置文件开始。

equivs-control /dev/stdout > f

然后编辑文件 f。我们可以保留大部分不变,但要修改“Package:”行

"Package: php5-mysql"

并根据配置文件构建包。

equivs-build f

这会在工作目录中产生

php5-mysql_<version>_<architecture>.deb

其中版本和体系结构在配置文件中定义,默认分别为“1.0”和“all”。该包不包含任何内容。安装该包。当其他包依赖于 php5mysql 时,apt 得到满足。

相关内容