我正在尝试从源代码编译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,但由于缺少依赖关系,我无法开始编译?谢谢!
答案 0 :(得分:5)
尽管问题this MySQL bug report提示不一样。请尝试以下步骤:
卸载mysql-client-5.6和mysql-server-5.6:[sudo] apt-get remove mysql-client-5.6 mysql-server-5.6
。
启动[sudo] apt-get build-dep php5
命令。在再次升级之前,允许自动构建必要的依赖项。
重新安装mysql-5.6。这应该替换对mysql-5.5的所有引用。使用命令[sudo] apt-get install mysql-client-5.6 mysql-server-5.6
。
答案 1 :(得分:2)
这只是一个黑暗中的镜头,但你可以尝试首先使用所需的php版本安装mysql 5.5,一旦完成,将mysql升级到5.6
答案 2 :(得分:2)
为什么使用apt-get build-dep而不是install?根据apt-get的手册页,“build-deps”将尝试删除已安装的软件包以解决依赖关系,这里是mysql-server-5.6。 我只是使用安装,它的工作原理。
apt-get install php5
为了测试php是否正在使用mysql-5.6我使用apt-get安装了PhpMyadmin并且它可以正常使用5.6,你可以做同样的事情,并在Variables页面中检查名为“Version”的变量。
正如FYI apt-get build-dep与源代码构建不同。
答案 3 :(得分:1)
这个问题是关于从源代码安装PHP5:
apt-get build-dep是值得怀疑的
依赖性检测应该对应于与中的相同的定义
提供的php5 - debian - 包。
据我了解,您希望拥有不同的构建配置
但是,对于你的php5安装。
所以这通常是./configure --your-configure-options
的过程
并进行清理编译安装
由配置的调用生成的依赖关系定义
不会被出口也不会被看见
所以你必须自己解决这些问题,安装
构建php5所需软件的正确版本 - 安装
也许开发 - 包提供所需的正确标头
建筑物。
答案 4 :(得分:1)
PHP无法通过Ubuntu 14.04开箱即用的Git结账编译。
欢迎来到依赖地狱。
尝试从pre-compiled download进行编译。
Git结账不会编译的原因是因为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
成功运行的解决方法。
完全删除MySQL(不仅仅是相关的5.6软件包)
完全删除所有MySQL软件包和任何配置文件非常重要。您可以通过运行dpkg -l | grep 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
目录中的某个文件。
运行apt-get build-dep php5
这使得apt-get build-dep php5
成功运行并将安装MySQL 5.5!
确保已安装libmcrypt-dev
。
稍后当您尝试编译时,您会收到抱怨readline
或mcrypt
的错误,例如:
configure: error: Please reinstall readline - I cannot find readline.h
通过安装libmcrypt-dev
解决了所有这些错误。 :)让我花太多时间来解决这个问题。
apt-get install libmcrypt-dev
再次完全删除MySQL
按照您在步骤1中的操作完成此过程,但这次5.5您要删除。
安装MySQL 5.6
确保已安装libmcrypt-dev
。