PHP安装在干净的Amazon Linux AMI上
我正在尝试使用php55和Amazon
PHP sdk来创建一个新的Amazon Linux EC2实例.但是,我遇到了一个我认为是由PHP版本冲突引起的问题.我认为在这种情况下,我对于yum的工作方式有所遗漏.
把它归结为最简单的情况,如果我运行: yum install -y httpd24 php55 php-amazon-sdk2 我得到“错误:php55-与php-common-5.3.29-1.7.amzn1.x86_64的常见冲突” 但是,如果我跑: yum install -y httpd24 php55 然后单独运行: yum install -y php-amazon-sdk2 它工作得很好.要清楚的是,当我运行这些命令时,系统上根本没有PHP版本,所以它与已经存在的东西没有冲突. 我不太熟悉yum依赖项是如何工作的,但似乎这表明php-amazon-sdk2对于php55很好,但出于某种原因,它试图强制php53,如果我同时安装它.解决这个问题的正确方法是什么(意思是,我不想强??迫它安装,忽略依赖关系,但我也不想在单独的步骤中执行这些操作)?
这是由于Amazon Linux上的RPM / YUM限制,以及打包多个版本的php的方式. Amazon Linux的一个功能是有多种语言的多个版本和其他开源软件包.在许多情况下,这些软件包必须相互冲突,因为软件不是设计用于同时安装的.
在这种情况下,正在发生的是每个PHP包都有一个通用的提供(即PHP php54和php55都提供PHP). php-amazon-sdk2只需要php,这是通过在yum命令行上指定php55包来满足的.冲突错误来自php-guzzle-Guzzle包,它需要php-common.在这种情况下,如果你在安装php-amazon-sdk2软件包时在你的yum命令中添加了php55-common,它就会成功. yum install -y httpd24 php55 php55-common php-amazon-sdk2 通常,在Amazon Linux AMI上,如果您遇到与php的冲突错误,解决方法是将正确的版本化软件包添加到yum命令行.在这种情况下,报告的冲突是常见的.你知道你想要安装php55,所以这只是告诉yum你究竟想要什么(即我想要php55-common,而不是php-common).如果你安装了一个需要php的软件包,并且你没有指定任何其他的php软件包,那么yum将选择通用的php软件包,并且将安装PHP 5.3.这些冲突错误通常是php54和php55包的问题. 我同意这项工作并不直观,亚马逊Linux AMI团队已经注意到了这个问题.他们正在探索此问题的几种不同解决方案.他们对php包装和Amazon Linux AMI的反馈非常开放.他们会监控aws论坛,因此这是发布问题的最佳位置.如果您拥有AWS Premium Support,则可以使用它们打开案例,并将其转发给Amazon Linux AMI团队. 谢谢,希思 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |