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 

这个问题是由Plesk 12引起的,它不支持mysqlnd 。 看来,尽pipe它没有官方的支持,但它与mysqldn一起工作。 不build议在生产环境中修改这些设置。 这是一个丑陋的黑客,但可以做到。

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

 dpkg-deb -x psa-php5-configurator_x.xx-x_x.deb tmp_dir dpkg-deb --control psa-php5-configurator_x.xx-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的更新再次做到这一点。 祝你在你select的路上好运。

如果我们相信php5mysql的function被取代,并且系统将在没有包的情况下运行,我们可以创build一个提供该包名称的虚拟包。 equivs是生成这样一个包的工具。

安装equivs。 文档很简单,用法很简单。 我们写一个configuration文件。 我们可以从一个示例模板configuration文件开始。

 equivs-control /dev/stdout > f 

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

 "Package: php5-mysql" 

并根据configuration文件构build包。

 equivs-build f 

这产生在工作目录中

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

版本和体系结构在configuration文件中定义,默认分别为“1.0”和“all”。 包里什么也没有。 安装包。 当其他软件包依赖于php5mysql时,apt满意。