我们需要 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 得到满足。