【问题标题】:PHP having issue in Ubuntu after upgrading mysql to v5.7将 mysql 升级到 v5.7 后,PHP 在 Ubuntu 中出现问题
【发布时间】:2016-10-11 21:39:57
【问题描述】:

我在我的 Ubuntu 上将 mysql 版本从 5.5 升级到了 5.7。

但是,在那之后没有任何与 mysql 相关的工作。我也更新了 php5-mysql 包。

我发现我必须使用命令 sudo apt-get install php5-mysqlnd 安装 php5-mysqlnd 包。但是,它无法安装。消息:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
 php5-mysqlnd : Depends: phpapi-20121212
                Depends: php5-common (= 5.5.36+dfsg-1+donate.sury.org~trusty+1) but 5.6.18+dfsg-1+deb.sury.org~trusty+1 is to be installed
E: Unable to correct problems, you have held broken packages.

我的 PHP 版本 5.6.18-1+deb.sury.org~trusty+1

【问题讨论】:

  • 您似乎使用了自定义存储库donate.sury.org,请在问题中添加您的apt 配置。并尝试使用默认存储库?

标签: php linux ubuntu ubuntu-14.04 apt-get


【解决方案1】:

您有一些来自一个存储库的包,还有一些来自主存储库的包。此外,这就是错误蔓延的地方,其中一些软件包被保留。您选择来升级它们:

php5-mysqlnd : Depends: phpapi-20121212
               Depends: php5-common (= 5.5.36...) but 5.6.18... is to be
                        installed
E: Unable to correct problems, you have held broken packages.

可能发生了什么

在之前的升级过程中,系统出现错误并提出了一些解决方案,其中之一是“...继续并打破依赖关系”。你选择了那个——也就是说,你签署了一份对 APT 的弃权声明,“我永远不会升级 那个”。

现在你想这样做——你已经不能了。

你需要做什么

您需要识别那些被持有的包,确定它们被持有的原因,并相应地升级它们;或者回到 MySQL 5.5,如果一些更重要的依赖会被破坏。

apt-get update

apt-get --ignore-hold --dry-run upgrade

会告诉你如果你尝试升级那些当前持有的包会发生什么。您也可以尝试--fix-missing--fix-broken 选项。但是您需要的最重要的答案是,为什么这些包裹一开始就被保留了

如果您继续忽略持有的包裹,您可能会破坏无法轻松修复的东西。当我无意中升级了一个访问特定且非常挑剔的存储库所需的抑制 Subversion 包时,我曾经这样做过。升级成功,但我无法再提交源更改。

【讨论】:

    猜你喜欢
    • 2021-02-20
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2020-12-11
    • 2019-01-02
    相关资源
    最近更新 更多