【问题标题】:Compiling PHP from source with MySQL version 5.6使用 MySQL 5.6 版从源代​​码编译 PHP
【发布时间】:2014-05-20 06:15:01
【问题描述】:

我正在尝试从源代码编译 PHP 以使 ZTS 正常工作。我有 PHP 的源代码,我尝试使用

安装依赖项

apt-get build-dep php5

我还为 Ubuntu 14.04LTS 安装了 MySQL 5.6,并且在执行命令后出现此错误:

以下包具有未满足的依赖关系: mysql-server :取决于:mysql-server-5.5 但不会安装 E: 无法满足 php5 的构建依赖。

是否有绕过这种依赖关系的方法,因为 MySQL 5.6 可以与预构建的 PHP5 一起工作,但由于缺少依赖关系,我无法开始编译?谢谢!

【问题讨论】:

  • 您下载的确切 PHP 包是什么?你也从源代码构建 MySQL 吗?
  • @smcjones 在安装 MySQL 5.6 apt-get install mysql-server-5.6,然后 apt-get build-dep php5 给你错误。即The following packages have unmet dependencies: mysql-server : Depends: mysql-server-5.5 but it is not going to be installed E: Build-dependencies for php5 could not be satisfied.
  • 如果你尝试通过apt-get install mysql-server 安装mysql-server,你会得到同样的错误吗?
  • @smcjones 不,您不会收到错误消息,因为安装的是 5.5。这是 5.6 的依赖问题。
  • 我写了一个tutorial which includes PHP5 with pthreads, mongo, PDO, mysqli, curl 和你通常喜欢使用的所有扩展。

标签: php mysql ubuntu-14.04 mysql-5.6


【解决方案1】:

虽然不是同一个问题this MySQL bug report 暗示了一个解决方案。请尝试以下步骤:

  1. 卸载 mysql-client-5.6 和 mysql-server-5.6:[sudo] apt-get remove mysql-client-5.6 mysql-server-5.6.

  2. 启动您的[sudo] apt-get build-dep php5 命令。允许在再次升级之前自动构建必要的依赖项。

  3. 重新安装 mysql-5.6。这应该替换所有对 mysql-5.5 的引用。使用命令[sudo] apt-get install mysql-client-5.6 mysql-server-5.6

【讨论】:

  • 帮助!在 Debian 8.5 x64 上对我来说:它在最后一个命令上出错并出现错误:以下软件包具有未满足的依赖项:mysql-server-5.6:依赖:mysql-common (>= 5.6.22-1~) 但 5.5.50 -0+deb8u1 将被安装 E: 无法纠正问题,您持有损坏的软件包。
  • 为了得到一个好的答案,我建议您创建自己的问题,而不是在 cmets 中发布 - 我建议您提供尽可能多的详细信息:到目前为止您已采取的步骤,您的命令试过了,等等。
  • 是的。谢谢 :-)
【解决方案2】:

这只是在黑暗中的一个镜头,但你可以尝试先安装 mysql 5.5 并使用所需的 php 构建,一旦完成,将 mysql 升级到 5.6

【讨论】:

    【解决方案3】:

    为什么你使用 apt-get build-dep 而不是 install?根据 apt-get 的手册页,“build-deps”将尝试删除已安装的软件包以解决此处为 mysql-server-5.6 的依赖关系。 我只是简单地使用了 install 并且它可以工作。

    apt-get install php5
    

    为了测试 php 是否使用 mysql-5.6,我使用 apt-get 安装了 PhpMyadmin,它在 5.6 上运行良好,你可以做同样的事情并在变量页面中检查名为“Version”的变量。

    就像 FYI apt-get build-dep 不同于从源代码构建一样。

    【讨论】:

      【解决方案4】:

      因为这个问题是关于从源代码安装 PHP5:
      apt-get build-dep 是有问题的。
      依赖项检测应对应于与
      中相同的定义 提供的 php5 - debian - 包。
      据我了解,您希望拥有不同的构建配置
      不过,对于您的 php5 安装。
      所以这通常是一个 ./configure --your-configure-options
      的过程 并进行干净编译安装。
      调用 configure
      生成的依赖项定义 不会被导出,也不会被 apt 看到。
      所以你必须自己解决依赖关系,安装
      构建 php5 所需的正确软件版本 - 安装
      也许是开发包,以提供所需的正确标头 建设。

      【讨论】:

        【解决方案5】:

        无法从 Ubuntu 14.04 开箱即用的 Git 签出编译 PHP。

        欢迎来到依赖地狱。

        尝试从pre-compiled download 编译。

        Git checkout 无法编译的原因是 Bison 的依赖问题。 Ubuntu 14.04 有 Bison ~3.0.0,编译 PHP 需要 Bison ~2.0.0。

        checking for bison... bison -y
        checking for bison version... invalid
        configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).
        configure: error: bison is required to build PHP/Zend when building a GIT checkout!
        

        解决方法

        这是使apt-get build-dep php5 成功运行的解决方法。

        1. 完全删除 MySQL(不仅仅是相关的 5.6 包)

          完全删除所有 MySQL 包和所有配置文件非常重要。你可以通过运行dpkg -l | grep mysql来检查安装了哪些mysql包,What do the various dpkg flags like 'ii' 'rc' mean?

          使用清除选项卸载软件包:apt-get remove --purge <package name>

          您可能还需要手动删除一些文件。 阅读apt-get remove --purge 打印的消息,它会告诉您它是否没有删除某些文件以及为什么没有删除它们。您需要手动删除那些 apt-get 没有的文件不要删除。它们很可能是/etc/mysql 目录中某处的文件。

        2. 运行apt-get build-dep php5

          这使apt-get build-dep php5 成功运行并将安装 MySQL 5.5!

        3. 确保已安装 libmcrypt-dev

          稍后当您尝试编译时,您会收到抱怨 readlinemcrypt 的错误,例如:

          configure: error: Please reinstall readline - I cannot find readline.h
          

          所有这些错误都可以通过安装libmcrypt-dev 解决。 :) 我花了很长时间才弄清楚这个问题。

          apt-get install libmcrypt-dev
          
        4. 再次完全删除 MySQL

          按照您在第 1 步中的操作完成该过程,但这次您要删除的是 5.5。

        5. 安装 MySQL 5.6

        疑难解答:当您尝试编译时仍然出现错误?

        确保已安装 libmcrypt-dev

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-26
          • 2020-08-14
          相关资源
          最近更新 更多