我今天早上试图更新我的生产Web服务器(t2运行亚马逊Linux),但是因为我用完了内存(php-fpm)而失败了。 我停止了php-fpm释放一些RAM,但yum更新不会完成。 服务器运行正常,但我想清理这个问题。
# yum update Resolving Dependencies --> Running transaction check ---> Package glibc-headers.x86_64 0:2.17-106.168.amzn1 will be updated --> Processing Dependency: glibc-headers = 2.17-106.168.amzn1 for package: glibc-devel-2.17-106.168.amzn1.x86_64 ---> Package glibc-headers.x86_64 0:2.17-157.169.amzn1 will be an update --> Finished Dependency Resolution Error: Package: glibc-devel-2.17-106.168.amzn1.x86_64 (@amzn-main) Requires: glibc-headers = 2.17-106.168.amzn1 Removing: glibc-headers-2.17-106.168.amzn1.x86_64 (@amzn-main) glibc-headers = 2.17-106.168.amzn1 Updated By: glibc-headers-2.17-157.169.amzn1.x86_64 (amzn-updates) glibc-headers = 2.17-157.169.amzn1 You could try using --skip-broken to work around the problem ** Found 6 pre-existing rpmdb problem(s), 'yum check' output follows: glibc-devel-2.17-106.168.amzn1.x86_64 has missing requires of glibc(x86-64) = ('0', '2.17', '106.168.amzn1') glibc-devel-2.17-157.169.amzn1.x86_64 is a duplicate with glibc-devel-2.17-106.168.amzn1.x86_64 glibc-devel-2.17-157.169.amzn1.x86_64 has missing requires of glibc-headers = ('0', '2.17', '157.169.amzn1') glibc-headers-2.17-106.168.amzn1.x86_64 has missing requires of glibc(x86-64) = ('0', '2.17', '106.168.amzn1') subversion-1.9.4-2.55.amzn1.x86_64 has missing requires of subversion-libs(x86-64) = ('0', '1.9.4', '2.55.amzn1') subversion-1.9.5-1.56.amzn1.x86_64 is a duplicate with subversion-1.9.4-2.55.amzn1.x86_64
这里是安装的glibc包
# rpm -qa | grep glibc glibc-devel-2.17-157.169.amzn1.x86_64 glibc-devel-2.17-106.168.amzn1.x86_64 glibc-common-2.17-157.169.amzn1.x86_64 glibc-headers-2.17-106.168.amzn1.x86_64 glibc-2.17-157.169.amzn1.x86_64
一个问题似乎是安装了两个不同版本的glibc-devel。 它看起来像glibc的部分是在版本106和其他人在版本157。
我重新启动了服务器,如预期没有什么区别,但它是值得一试。 我跑了以下,没有任何效果
yum-complete-transaction yum-complete-transaction --cleanup-only yum clean all
在过去,我有类似的问题,但包装不太重要。 我只是删除他们,他们再次安装。 我不相信这是可能的,因为许多事情都依赖于它。
我已经看过Centos论坛,一个选项似乎是降级一些软件包来降级一些软件包 ,但我不知道是否有更好的select。 由于这是我的生产服务器,我会感谢一些build议,然后再尝试这个。 如果这是一个很好的方法,我应该降级? 降级后我应该怎么做,有规律的百胜餐饮更新?
请注意,我有定期的备份,如果需要可以从最近的备份中恢复,但是我不想重做一些有点棘手的SSL证书工作。 我打算迁移到Ubuntu,并使用CloudFormation在将来构build服务器,所以如果服务器失败,我可以简单地创build另一个,但这是未来的任务。
感谢您使用回滚的build议。 我试了一下,但没有正确回滚。
我创build了虚拟机的另一个实例,并试图手动执行操作。 从上面注意到,我有两个版本的glibc-devel我做了以下
yum remove glibc-devel-2.17-157.169.amzn1.x86_64 yum update glibc-devel-2.17-106.168.amzn1.x86_64
在那一刻,我做了一个“检查”,它告诉我也有一个颠覆的问题。
yum remove subversion yum install subversion yum clean all yum check
这似乎解决了这个问题。
我刚刚有一个类似的问题,glibc-common-2.17-106.1.169.amzn1.x86_64,是一个破碎的安装,所有其他glibc版本在@ 2.17-55。
运行yum重新安装glibc-common-2.17-106.1.169.amzn1.x86_64,触发了正确的依赖关系解决并修复了冲突。