我之前从未使用过 Chef 和 OpsWorks。我正在做的是尝试覆盖一些 Chef 配置以使用现代 PHP 5.6。
我为 Layer PHP App Server 编写了一个 JSON
{ "mod_php5_apache2": { "packages": ["php56-xml", "php56-common", "php56-gd", "php56-bcmath", "php56-mysqlnd", "php56-pecl-memcache"], "version": "2.4" } , "php-mysql" : {"package_name" :"php56-mysqlnd" } }
然后它开始安装新版本的 PHP 和软件包。但我遇到了问题php-mysql
。我找到了这个文件:https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.4/mod_php5_apache2/recipes/mysql_adapter.rb
据我了解,它提供了一个 php-mysql 包名,所以我尝试在 JSON 中重载它,但没有成功。当我部署层(设置)时,由于包冲突而失败:
[2016-05-18T20:28:25+00:00] INFO: 处理包 [php56-mysqlnd] 操作安装(mod_php5_apache2::default 第 4 行) [2016-05-18T20:28:25+00:00] DEBUG:软件包 [php56-mysqlnd] 正在检查 php56-mysqlnd 的 yum 信息 [2016-05-18T20:28:25 + 00:00] DEBUG:包[php56-mysqlnd]已安装版本:(无)候选版本:5.6.21-1.124.amzn1 [2016-05-18T20:28:25+00:00] INFO: 软件包[php56-mysqlnd] 从 amzn-updates 存储库安装 php56-mysqlnd-5.6.21-1.124.amzn1 [2016-05-18T20:28:25+00:00] 调试:执行 yum -d0 -e0 -y 安装 php56-mysqlnd-5.6.21-1.124.amzn1 [2016-05-18T20:28:28+00:00] DEBUG: ---- 开始输出 yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 ---- [2016-05-18T20:28:28+00:00] 调试:标准输出: [2016-05-18T20:28:28+00:00] 调试:STDERR: [2016-05-18T20:28:28+00:00] DEBUG: ---- yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 的输出结束 ---- [2016-05-18T20:28:28 + 00:00]调试:运行 yum -d0 -e0 -y install php56-mysqlnd-5.6.21-1.124.amzn1 返回 0 [2016-05-18T20:28:28+00:00] INFO: 处理包 [php56-pecl-memcache] 操作安装 (mod_php5_apache2::default 第 4 行) [2016-05-18T20:28:28+00:00] 警告:解析 yum-dump.py 中的行“插件“replace”无法导入”时出现问题!请检查您的 yum 配置。 [2016-05-18T20:28:28+00:00] DEBUG:软件包 [php56-pecl-memcache] 正在检查 php56-pecl-memcache 的 yum 信息 [2016-05-18T20:28:28+00:00] DEBUG:包[php56-pecl-memcache]已安装版本:3.0.8-6.17.amzn1候选版本:3.0.8-6.17.amzn1 [2016-05-18T20:28:28+00:00] DEBUG:包 [php56-pecl-memcache] 已安装 - 无需执行任何操作 [2016-05-18T20:28:28+00:00] INFO: 处理包 [php-mysql] 操作安装(mod_php5_apache2::mysql_adapter 第 1 行) [2016-05-18T20:28:28+00:00] DEBUG:软件包[php-mysql] 正在检查 php-mysql 的 yum 信息 [2016-05-18T20:28:28 + 00:00] DEBUG:包[php-mysql]已安装版本:(无)候选版本:5.3.29-1.8.amzn1 [2016-05-18T20:28:28+00:00] INFO: 软件包[php-mysql] 从 amzn-main 存储库安装 php-mysql-5.3.29-1.8.amzn1 [2016-05-18T20:28:28+00:00] 调试:执行 yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 [2016-05-18T20:28:30+00:00] DEBUG: ---- 开始输出 yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 ---- [2016-05-18T20:28:30+00:00] DEBUG: STDOUT: 您可以尝试使用 --skip-broken 来解决问题 您可以尝试运行:rpm -Va --nofiles --nodigest [2016-05-18T20:28:30+00:00] DEBUG:STDERR:错误:php56-pdo 与 php-pdo-5.3.29-1.8.amzn1.x86_64 冲突 错误:php-mysql 与 php56-mysqlnd-5.6.21-1.124.amzn1.x86_64 冲突 错误:php56-common 与 php-common-5.3.29-1.8.amzn1.x86_64 冲突 [2016-05-18T20:28:30+00:00] DEBUG: ---- yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 的输出结束 ---- [2016-05-18T20:28:30+00:00] 调试:运行 yum -d0 -e0 -y install php-mysql-5.3.29-1.8.amzn1 返回 1 ================================================================================ 在资源‘package[php-mysql]’上执行操作‘install’时出错 ================================================================================ Chef::例外::执行 ---------------------- 返回 1,预期 0 ---- 开始输出 ---- STDOUT:您可以尝试使用 --skip-broken 来解决问题 您可以尝试运行:rpm -Va --nofiles --nodigestSTDERR:错误:php56-pdo 与 php-pdo-5.3.29-1.8.amzn1.x86_64 冲突 错误:php-mysql 与 php56-mysqlnd-5.6.21-1.124.amzn1.x86_64 冲突 错误:php56-common 与 php-common-5.3.29-1.8.amzn1.x86_64 冲突 ---- 结束输出 ---- 资源声明: --------------------- # 在 /opt/aws/opsworks/releases/20160503163349_2426-20160503163349/cookbooks/mod_php5_apache2/recipes/mysql_adapter.rb 中 1:软件包‘php-mysql’ 2:平台系列的软件包名称值( 3:'rhel' => 'php-mysql', 4:'debian' => 'php5-mysql' 5:) 6:结束 编译资源: ------------------ # 在 /opt/aws/opsworks/releases/20160503163349_2426-20160503163349/cookbooks/mod_php5_apache2/recipes/mysql_adapter.rb:1:in `from_file' 中声明 包(“php-mysql”)执行 重试延迟 2 版本“5.3.29-1.8.amzn1” 重试 0 cookbook_name :mod_php5_apache2 配方名称“mysql_adapter” 操作:安装 软件包名称“php-mysql” 结尾
有没有什么办法可以让这些弃用的软件包超载?